[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: build failure on sparc64-sun-solaris2.9
From: |
Aleksandar Milivojevic |
Subject: |
Re: build failure on sparc64-sun-solaris2.9 |
Date: |
Thu, 05 Jan 2006 21:36:30 -0600 |
User-agent: |
Mozilla Thunderbird 1.0.7-1.4.1.centos4 (X11/20051007) |
Paul Eggert wrote:
Aleksandar Milivojevic <address@hidden> writes:
if gcc -DHAVE_CONFIG_H -DLIBDIR=\"/opt/pbl/lib/sparcv9\" -I. -I../../lib -I..
-I.. -I../../lib -g -O2 -MT canon-host.o -MD -MP -MF ".deps/canon-host.Tpo"
-c -o canon-host.o ../../lib/canon-host.c; \
then mv -f ".deps/canon-host.Tpo" ".deps/canon-host.Po"; else rm -f
".deps/canon-host.Tpo"; exit 1; fi
In file included from ../../lib/getaddrinfo.h:28,
from ../../lib/canon-host.c:27:
/usr/include/sys/socket.h:61: error: two or more data types in declaration
specifiers
Shouldn't you be using "gcc -m64" if you want to build a 64-bit version?
(Or perhaps you have a special gcc that defaults to 64-bit?)
I'm using sparc64 build of gcc, which defaults to 64-bit (it isn't
special, just not common).
I tried to reproduce your problem with coreutils 5.93 on a Solaris 9
sparc host with GCC 4.0.2, using "configure CC='gcc -m64'", and didn't
have that problem.
Using 5.93 too. The problem was due to bug in gcc (blame the compiler ;-)
See explanation bellow.
Most likely your "configure" went wrong, and put a "#define socklen_t
int" into config.h. If so, you should investigate why. But first,
upgrade to 5.93.
Yup, the configure script went wrong, and defined socklen_t in config.h.
Sparc64 gcc when built with NLS support (default) has a problem that it
core dumps from time to time if there are any warnings or errors during
compilation. It's a known bug. The sparc (32bit) build is not affected
(the bug exists in both builds, but is triggered only in sparc64 build
due to different type sizes). The test for socklen_t triggered an
warning to be printed by gcc ("warning: extra tokens at end of #endif
directive"). Gcc crashed, and configure concluded that there's no
socklen_t defined in system header files.
In the meantime, I rebuilt gcc without NLS support (the bug was rather
annoying, and I don't need gcc to tell me how bad my code is in exotic
languages). This time, everything went fine.
BTW, during install, I got this message for each and every file that was
copied:
../../build-aux/install-sh: -: not found
Also, seems like linking of utilities isn't quite optimal. Running ldd
on any of them gives a long list of libs.