emerge xfree on a fresh stage1 (PPC, kernel 2.6, gcc3.2.3-r4) install gives the following error: gcc -c -O3 -O3 -O3 -O3 -pipe -mcpu=750 -fsigned-char -I../common -I../scanpci -I../loader -I../../../../../programs/Xserver/hw/xfree86/os-support -I../../../../../programs/Xserver/include -I../../../../../exports/include/X11 -I../../../../../lib/font/include -I../../../../.. -I../../../../../exports/include -Dlinux -D__powerpc__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DXF86CONFIG=\"XF86Config\" -DUSE_MODULES -DHAS_NCURSES -DPROJECT_ROOT=\"/usr/X11R6\" -DXF86CONFIGDIR=\"/etc/X11\" text-mode.c In file included from text-mode.c:47: loader.h:78: unnamed fields of type other than struct or union are not allowed make[5]: *** [text-mode.o] Error 1 make[5]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver/hw/xfree86/xf86cfg' make[4]: *** [all] Error 2 make[4]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver/hw/xfree86' make[3]: *** [hw/xfree86] Error 2 make[3]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver' make[2]: *** [install] Error 2 make[2]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs' make[1]: *** [install] Error 2 make[1]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc' make: *** [install] Error 2 !!! ERROR: x11-base/xfree-4.3.0-r5 failed. !!! Function src_install, Line 623, Exitcode 2 !!! (no error message) This ebuild was last updated on 3/1/2004. I believe it was working for me before then. 3 separate cases so far (2 on PPC, one on x86). See http://forums.gentoo.org/viewtopic.php?p=917841#917841 Please ask if more info required :) Reproducible: Always Steps to Reproduce: 1. Fresh Gentoo install with latest/yesterdays portage tree 2. emerge xfree 3. wait about an hour (for me anyways!) Actual Results: Compile time error: In file included from text-mode.c:47: loader.h:78: unnamed fields of type other than struct or union are not allowed make[5]: *** [text-mode.o] Error 1 make[5]: Leaving directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver/hw/xfree86/xf86cfg' and emerge terminates Don't have network connection for laptop in work, typing this... Portage 2.0.50-r1 (default-ppc-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.6.1-benh) ================================================================= System uname: 2.6.1-benh1 ppc 7457, altivec supported Gentoo Base System version 1.4.3.13 autoconf-2.58-r1 automake-1.7.8 ACCEPT_KEYWORDS="ppc" CFLAGS="-O2 -pipe -mcpu=7450 -maltivec -mabi=altivec" ... emerge -pv xfree : [ebuild N ] x11-base/xfree-4.3.0-r5 -(3dfx) -(3dnow) -bindist -cjk -debug -doc -ipv6 -(mmx) +nls +pam -sdk -(sse) -static +truetype -xml2
By 3/1/2004 do you mean March 1 or Jan. 3? Date conventions vary.
Fails here too. specifically: make[5]: Entering directory `/var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver/hw/xfree86/xf86cfg' rm -f text-mode.o gcc -c -mno-mmx -ansi -pedantic -Wno-return-type -w -I../common -I../scanpci -I../loader -I../../../../../programs/Xserver/hw/xfree86/os-support -I../../../../../programs/Xserver/include -I../../../../../exports/include/X11 -I../../../../../lib/font/include -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 -DXF86CONFIG=\"XF86Config\" -DUSE_MODULES -DHAS_NCURSES -DPROJECT_ROOT=\"/usr/X11R6\" -DXF86CONFIGDIR=\"/etc/X11\" text-mode.c In file included from text-mode.c:47: loader.h:78: unnamed fields of type other than struct or union are not allowed Details: USE="X gtk gnome -alsa -kde -qt ssl perl python mysql innodb opengl png gif pam tcpd mmx cups samba tcltk $ CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" have also tried less aggressive cflags as follows and it fails at same point/error as well: CFLAGS="-O3 -mcpu=pentium4 -03 -pipe" Reproduce? 1. emerge -uD world 2. crashes on: !!! ERROR: x11-base/xfree-4.3.0-r5 failed. !!! Function src_install, Line 621, Exitcode 2 !!! (no error message) Emerge info: ================================================================= System uname: 2.4.20-gentoo-r9 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz Gentoo Base System version 1.4.3.13p1 distcc 2.11.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled] ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59 Automake: sys-devel/automake-1.7.5-r2 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -funroll-loops -fprefetch-loop-arrays -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs buildpkg ccache distcc sandbox" GENTOO_MIRRORS="http://mirror.clarkson.edu/pub/distributions/gentoo/ rsync://gentoo.seren.com/gentoo rsync://csociety-ftp.ecn.purdue.edu/pub/gentoo/ http://gentoo.mirrors.pair.com/" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X apache2 apm arts avi berkdb cdr crypt cups encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 imlib innodb java jpeg libg++ libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png postgres python quicktime readline ruby samba sdl slang spell ssl svga tcltk tcpd truetype x86 xml2 xmms xv zlib"
*** Bug 43505 has been marked as a duplicate of this bug. ***
Exactly the same problem here, during a: emerge -uD world to try and bring my Gentoo installation up to the new 2004.0 release. Originally I was using distcc... I tried disabling it (removing distcc from features in make.conf) but that didn't make a difference. Could it be a residing issue with *previous* dependencies built with distcc, perhaps? Specifically, I was using it in conjunction with 'distcc-knoppix' which I just found out uses a slightly different version of gcc (bad) - anyone else? Also tried with simpler CFLAGS of: -O2 -mcpu=i686 -fomit-frame-pointer and -O2 -march=pentium4 -mcpu=pentium4 but neither of those helped either :/ emerge info: Portage 2.0.50-r1 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r9, 2.6.1-gentoo) ================================================================= System uname: 2.6.1-gentoo i686 Intel(R) Pentium(R) 4 CPU 3.00GHz Gentoo Base System version 1.4.3.13 distcc 2.12.1 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled ] Autoconf: sys-devel/autoconf-2.58 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium4 -mcpu=pentium4 -pipe -mmmx -msse -msse2 -fomit-frame -pointer -fPIC" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1 /share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/confi g /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -mcpu=pentium4 -pipe -mmmx -msse -msse2 -fomit-fra me-pointer -fPIC" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache distcc sandbox" GENTOO_MIRRORS="http://gentoo.oregonstate.edu http://distro.ibiblio.org/pub/Linu x/distributions/gentoo" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X aalib acpi alsa apm arts avi berkdb cdr crypt cups dga directfb dvb dvd d vdr encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 imagemagick imlib java jpe g kde libg++ libwww mad mikmod mmx motif mozilla mpeg mysql ncurses nls oggvorbi s opengl oss pam pda pdflib perl png ppds python qt quicktime readline samba sca nner sdl slang spell ssl svga tcltk tcpd truetype usb x86 xml2 xmms xv zlib"
Jamie you left out the top line of emerge info with your toolchain versions (gcc glibc etc).
Oops - my error on missing the first line in emerge info. Here it is: Portage 2.0.50-r1 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r3, 2.4.20-gentoo-r9) Jamie
Could you all please upgrade your gcc to latest stable if it isn't? The common factor I'm seeing so far is all of you on gcc-3.2.3 instead of 3.3.2. Note that I can't reproduce this with my current setup: Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.25) For those of you on ppc, there is no stable 3.3.x, just gcc-3.3.3_pre20040215 marked ~ppc.
Well I cant reproduce this with gcc-3.2.3-r3 or gcc-3.3.3. XFree has just compiled successfully for me under both compilers. From looking quickly I would like someone to define the LOADER_PRIVATE macro in work/xc/programs/Xserver/hw/xfree86/xf86cfg/text-mode.c (before the inclusion of loader.h). Something like this --- text-mode.c.old 2004-03-03 23:33:23.042536336 +1100 +++ text-mode.c 2004-03-03 23:33:46.483972696 +1100 @@ -44,6 +44,7 @@ #include "cards.h" #include "config.h" #include "xf86config.h" +#define LOADER_PRIVATE #include "loader.h" #define XKB_RULES_DIR "/usr/X11R6/lib/X11/xkb/rules" I dont know if this will futher break the compile or not. I recommend that you apply this patch and manually type make from the directory to see what happens.
-------------------------------------------------------------------------- Error before patch [same as before]: -------------------------------------------------------------------------- rm -f text-mode.o gcc -c -O2 -O2 -O2 -O2 -pipe -mcpu=7450 -fsigned-char -I../common -I../scanpci -I../loader -I../../../../../programs/Xserver/hw/xfree86/os-support -I../../../../../programs/Xserver/include -I../../../../../exports/include/X11 -I../../../../../lib/font/include -I../../../../.. -I../../../../../exports/include -Dlinux -D__powerpc__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DXF86CONFIG=\"XF86Config\" -DUSE_MODULES -DHAS_NCURSES -DPROJECT_ROOT=\"/usr/X11R6\" -DXF86CONFIGDIR=\"/etc/X11\" text-mode.c In file included from text-mode.c:48: loader.h:78: unnamed fields of type other than struct or union are not allowed make: *** [text-mode.o] Error 1 -------------------------------------------------------------------------- Error after patching and running make: -------------------------------------------------------------------------- rm -f text-mode.o gcc -c -O2 -O2 -O2 -O2 -pipe -mcpu=7450 -fsigned-char -I../common -I../scanpci -I../loader -I../../../../../programs/Xserver/hw/xfree86/os-support -I../../../../../programs/Xserver/include -I../../../../../exports/include/X11 -I../../../../../lib/font/include -I../../../../.. -I../../../../../exports/include -Dlinux -D__powerpc__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DXF86CONFIG=\"XF86Config\" -DUSE_MODULES -DHAS_NCURSES -DPROJECT_ROOT=\"/usr/X11R6\" -DXF86CONFIGDIR=\"/etc/X11\" text-mode.c In file included from ../../../../../programs/Xserver/include/scrnintstr.h:56, from ../common/xf86str.h:40, from ../common/xf86.h:40, from loader.h:42, from text-mode.c:48: ../../../../../programs/Xserver/include/colormap.h:76: redefinition of `Pixel' ../../../../../exports/include/X11/Intrinsic.h:125: `Pixel' previously declared here In file included from ../common/xf86str.h:44, from ../common/xf86.h:40, from loader.h:42, from text-mode.c:48: ../common/xf86Opt.h:44: unnamed fields of type other than struct or union are not allowed make: *** [text-mode.o] Error 1 -------------------------------------------------------------------------- I will try later a later version of GCC later. I have managed to compile X on this machine recently with a fresh build, same gcc and kernel 2.4 (using a stage3 from the CD instead of latest packages). Tried using 2.4 Kernel -no good Different baselayout? Will also try using an older ebuild (r3 / r4) if I can find one. Are there any other dependencies that may be causing the problem?
Tried Kernel 2.4 -no good Tried xfree-4.3.0-2 -no good Upgraded to bison 1.875 and gcc-3.3.3_pre20040215 and xfree-4.3.99.902-r2 compiled. Anyone else successful?
Good news... updating gcc got me past the Xfree bug here. Am now running: Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.4.20-gentoo-r9) Unfortunately I've got to chase down a libevent-0.6 compile failure next. For those that are still struggling to get past this one, I'd suggest changing ACCEPT_KEYWORDS="x86" (not "~x86") if possible as the stable versions seem to help work past this one.
got the text-mode.c:47 compile error while building GRP for a 2004.1 release candidate. How should we proceed? Wierd things is that this ebuild used to compile a few days ago. Maybe a ppc core update is causing this bug? But it seems to happen on x86 too?
http://www.mail-archive.com/xfree86@xfree86.org/msg13400.html Happens because a variable is named 'bool'. If something includes the new glibc <stdbool.h> this obviously conflicts.
From a message that hasn't hit the archives yet: "The simplest thing to do is to rename that field in xf86cfg/loader.h. As for the field in common/xf86Opt.h, that header is only used by server code, and server code shouldn't ever use curses. That leaves some future #include <stdbool.h> in server code, but we can cross that bridge when/if we get there. In the meantime, the API issue is avoided."
*** Bug 43861 has been marked as a duplicate of this bug. ***
What about that patch they were talking about? diff -Naur xc/programs/Xserver/hw/xfree86/common/xf86Opt.h xc-bool/programs/Xserver/hw/xfree86/common/xf86Opt.h --- xc/programs/Xserver/hw/xfree86/common/xf86Opt.h 2001-05-04 14:05:30.000000000 -0500 +++ xc-bool/programs/Xserver/hw/xfree86/common/xf86Opt.h 2004-02-18 14:27:07.000000000 -0600 @@ -5,6 +5,10 @@ #ifndef _XF86_OPT_H_ #define _XF86_OPT_H_ +#ifdef bool +# undef bool +#endif + typedef struct { double freq; int units; diff -Naur xc/programs/Xserver/hw/xfree86/xf86cfg/loader.h xc-bool/programs/Xserver/hw/xfree86/xf86cfg/loader.h --- xc/programs/Xserver/hw/xfree86/xf86cfg/loader.h 2001-07-09 18:45:24.000000000 -0500 +++ xc-bool/programs/Xserver/hw/xfree86/xf86cfg/loader.h 2004-02-18 14:26:51.000000000 -0600 @@ -66,6 +66,10 @@ #ifndef LOADER_PRIVATE /* common/xf86Opt.h */ +#ifdef bool +# undef bool +#endif + typedef struct { double freq; int units;
That's a hack, according to the rest of the thread. Also, is this only affecting people on ncurses 5.4?
I have a SUN Ultra 60 with kernel 2.6.3 and gcc-3.2.3. I have problems with both xfree-4.3.0-r5 and xfree-4.3.99-902-r2. Both crash on the exact same error described here, except the line number on 4.3.99-902-r2 is different. 400something. So, you can add a 4th person using sparc to the list. It now is x86, ppc and sparc.
Problem solved by masking ncurses-5.4 as unstable or broken. Note that ncurses-5.4 was introduced without going to unstable first.
Same problem, same solution here: drop back to ncurses-5.3-r5 (from 5.4-r1), and xfree-4.3.0-r5 compiles fine for me on ppc, with gcc-3.2.3-r4.
Imho, ppc should mask ncurses 5.4 until a better solution is found. cc'ing ppc. Darkspecter can you take care of this asap?
Yup, downgraded to ncurses-5.3-r5 and now all versions of xfree compile flawlessly. Thanks guys
Downgrading to ncurses-5.3-r5 helped for me too. I emerged xfree-4.3.99-902-r2 last night without a single problem.
could you try the latest ncurses? (5.4-r1), here the latest xfree is building correctly with the latest ncurses.
I tried both xfree-4.3.0-r5 and xfree-4.3.99-902-r2 and both have failed with ncurses-5.4-r1. That is why I also downgraded to ncurses-5.3-r5 which does not let xfree-both-versions crash on build. I however did not try ncurses-5.4 for which there is also an ebuild.
I get the same problem building on sparc..
Confirmed. I have the same problem on Alpha (ev67). Downgrading to ncurses-5.3-r1 solved it (can ncurses-5.4 be masked on Alpha, please?)
To sum up various mailing list posts and this bug: xf86cfg uses ncurses. curses.h in ncurses-5.4 uses stdbool.h, which defines a 'bool' that conflicts with a field called 'bool' in a union type called ValueUnion in xf86cfg/loader.h. Because ncurses-5.4 went straight to stable, we didn't have a chance to test this beforehand. As in that email pvdabeel linked to, the two main options are (1) undefining 'bool' if it's already defined and (2) renaming the field to 'xbool' or similar. Option 2 is less of a hack. The key difference here is, while pvdabeel's link said it would break the API, that's part of the server code in common/xf86Opt.h, which should never use curses. Therefore we can safely change the field name in xf86cfg. Take-home point: xfree-4.3.0-r6 will receive a patch to deal with this. It will be removed from package.mask soon, so everything should be happy then.
This is in patchset 2.1.26.16. As of that patchset, to check your version run xdpyinfo | grep vendor. donnie@supernova xfree $ xdpyinfo | grep vendor vendor string: Gentoo Linux (The X.Org Foundation 6.7.0, revision r0-0.5) The last string (0.5) is patchset. Please confirm it's working.
Assuming it's fixed in lieu of any further complaints.
Looks good so far
*** Bug 50863 has been marked as a duplicate of this bug. ***
*** Bug 62989 has been marked as a duplicate of this bug. ***