gcc error while compiling XFree86-4.3.1

Andre Müller andre.muller at web.de
Wed Feb 18 10:49:41 PST 2004


hi folks,

I am building BLFS 5.0 rather succesfully (till now)
based on an LFS 4.1 core.

the XFree86 version is 4.3.0,
patched to 4.3.1.

gcc and glibc is 3.2.1

hopefully, i identified the spot where things start to go wrong.


this is the beginning of the make process giving me the error (quoted 
below):

make[4]: Leaving directory `/usr/src/xc/lib/Xext'
making all in lib/Xt...
make[4]: Entering directory `/usr/src/xc/lib/Xt'
rm -f ActionHook.o unshared/ActionHook.o

<cut>

gcc -m32 -c -O2 -fomit-frame-pointer -march=pentium2  -ansi -pedantic 
-pipe    -I../.. -I../
../exports/include   -Dlinux -D__i386__
-D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE 
-D_SVID_SOURCE  -D_G
NU_SOURCE   -DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS  -D_REENTRANT 
-DXUSE_MTSAFE_API      -DU
SE_SNPRINTF -DLIBXT        -fPIC Initialize.c
rm -f Intrinsic.o unshared/Intrinsic.o
gcc -m32 -c -ansi -pedantic -pipe    -I../.. -I../../exports/include 
-Dlinux -D__i386__ -D
_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE
-D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE  -D_GNU_SOURCE 
-DFUNCPROTO=15 -DNARROWPROTO -
DXTHREADS  -D_REENTRANT -DXUSE_MTSAFE_API      -DUSE_SNPRINTF -DLIBXT 
   -O2 -fomit-frame-p
ointer -march=pentium2  -DXFILESEARCHPATHDEFAULT=\"/etc/X11/app-defaults 
/%N%C%S:/etc/X11/ap
p-defaults 
/%N%S:/usr/X11R6/lib/X11/%L/%T/%N%C%S:/usr/X11R6/lib/X11/%l/%T/%N%C%S:/usr/X11R6/
lib/X11/%T/%N%C%S:/usr/X11R6/lib/X11/%L/%T/%N%S:/usr/X11R6/lib/X11/%l/%T/%N%S:/usr/X11R6/lib
/X11/%T/%N%S\" Intrinsic.c -o unshared/Intrinsic.o
gcc: cannot specify -o with -c or -S and multiple compilations
make[4]: *** [Intrinsic.o] Error 1


the man for gcc tells me that -o makes no sense
with multiple sources unless the output is an executable,
the -c flag just does not link after compilation.

i can't make much of it, i'm sad to say...

this error leads to quite a few consecutive errors,
which is unsurprising.

here is the command as i tracked it down in  lib/Xt/Makefile:

Intrinsic.o: Intrinsic.c $(ICONFIGFILES)
         $(_NULLCMD_)
         $(_NULLCMD_)
         $(RM) $@ unshared/$@
          $(CC) -c $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) 
$(CDEBUGFLAGS) $(CLIBDEBUGFLA
GS) $(SRCH_DEFINES) $*.c -o unshared/$@
         $(_NULLCMD_)
         $(RM) $@
          $(CC) -c $(CFLAGS) $(SRCH_DEFINES) $(SHLIBDEF) 
$(SHAREDCODEDEF) $(PICFLAGS) $*.c

Intrinsic.i: Intrinsic.c $(ICONFIGFILES)
         $(RM) $@
          $(CC) -E $(CFLAGS) $(SRCH_DEFINES) Intrinsic.c > $@


the Imakefile says:

SpecialCLibObjectRule(Intrinsic,$(ICONFIGFILES),$(SRCH_DEFINES))


last not least i think i should add my host.def file...

it is closely following the book with changes in -march,
added the keyboard as input driver (as leaving it out seemed rather odd)
the XAppLoadDir setting seemed wrong to me in the template
(EtcX11Direcory/app-defaults, but the Makefile says ETCX11DIR)
and i rather set HasLibCrypt to NO,
but i am altogether not shure. I use shadow passwords,
but that's the only thing about cryptography i added,
and the flag seems to be  HasShadowPasswd.
(but if anyone knows better...)

voila:

/* Begin XFree86 host.def file  von andrem */

#define DefaultGcc2i386Opt      -O2 -fomit-frame-pointer -march=pentium2

#define HasMTRRSupport          YES
#define HasMMXSupport           YES

#define XInputDrivers           mouse keyboard void

/* Video Drivers  */
#define XF86CardDrivers         mga fbdev

/* Library support */
#define HasFreetype2            YES
#define HasFontconfig           YES
#define HasExpat                YES
#define HasLibpng               YES
#define HasZlib                 YES

/* General settings */
#define GccWarningOptions       -pipe
#define TermcapLibrary          -lncurses
#define XprtServer              YES
#define XnestServer             YES
#define XAppLoadDir             /etc/X11/app-defaults
#define VarLibDir               /var/lib
#define XFree86Devel            NO
#define FSUseSyslog             YES
#define ThreadedX               YES
#define HasPam                  NO
#define SystemManDirectory      /usr/share/man
#define HasLibCrypt             NO  /* andrem: or has it? */
#define InstallXinitConfig      YES
#define InstallXdmConfig        YES
#define ForceNormalLib          YES
#define BuildSpecsDocs          NO

/* End XFree86 host.def file */

i do very much hope that this is enough information
for the skilled reader to spot the error...

best,

andre





More information about the blfs-support mailing list