Hi,

On 12/16/06, Stipe Tolj <[EMAIL PROTECTED]> wrote:
Andrikopoulos Dimitrios wrote:

> Hello,
>
>   I'm trying to install Kannel on a SPARC Solaris 10 machine. When I try
> to compile the "start-stop-daemon"
> program, "configure" goes fine:
>
>         # ./configure --prefix=/usr/local/gw --enable-start-stop-daemon
>
> However, "make" fails with these lines:
>
> gcc -D_REENTRANT=1 -I. -Igw -g -O2 -DSunOS=1 -D_FILE_OFFSET_BITS=64
> -I/usr/local/include/libxml2 -o utils/start-stop-daemon.o -c
> utils/start-stop-daemon.c
>
> In file included from utils/start-stop-daemon.c:127:
>
> /usr/include/sys/procfs.h:45:2: #error "Cannot use procfs in the large
> file compilation environment"
>
> make: *** [utils/start-stop-daemon.o] Error 1
>
>
>   When I exclude the option "--enable-start-stop-daemon" everything goes
> fine!

Hi Dimitris,

ok, the start-stop-daemon utility was originated from BSD flavors, which is of
course NOT the "source" of Solaris. Obviously it's not portable to Solaris.

It looks like using Solaris procfs with LFS requires 64 bit binaries.

/usr/include/sys/procfs.h on Solaris 10 contains:

/*
* This definition is temporary.  Structured proc is the preferred API,
* and the older ioctl-based interface will be removed in a future version
* of Solaris.  Until then, by default, including <sys/procfs.h> will
* provide the older ioctl-based /proc definitions.  To get the structured
* /proc definitions, either include <procfs.h> or define _STRUCTURED_PROC
* to be 1 before including <sys/procfs.h>.
*/
#ifndef _STRUCTURED_PROC
#define _STRUCTURED_PROC        0
#endif

#if !defined(_KERNEL) && _STRUCTURED_PROC == 0

#include <sys/old_procfs.h>

#else

/* ... */

#if !defined(_LP64) && _FILE_OFFSET_BITS == 64
#error  "Cannot use procfs in the large file compilation environment"
#endif

/* ... */

#endif

So the quick fix would be to compile that one binary by manually
adding -m64 to the command line:

$ gcc -m64 -D_REENTRANT=1 -I. -Igw -g -O2 -DSunOS=1
-D_FILE_OFFSET_BITS=64 -I/usr/include/libxml2 -o
utils/start-stop-daemon.o -c utils/start-stop-daemon.c

$ gmake # builds a few objects and then breaks again trying to link:
...
ld: fatal: file utils/start-stop-daemon.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to utils/start-stop-daemon
collect2: ld returned 1 exit status
gmake: *** [utils/start-stop-daemon] Error 1

$ gcc -m64 -D_REENTRANT=1 -I. -Igw -g -O2 -DSunOS=1
-D_FILE_OFFSET_BITS=64 -I/usr/include/libxml2  -o
utils/start-stop-daemon utils/start-stop-daemon.o libgw.a
libwmlscript.a libwap.a libgwlib.a -lrt -lresolv -lnsl -lsocket -lm
-lpthread -L/usr/lib -R/usr/lib -lxml2 -lz -lpthread -lm -lsocket
-lnsl

--
John

Reply via email to