Emerge fails ;) Reproducible: Always Steps to Reproduce: emerge fbgetty Actual Results: Making all in src make[1]: Entering directory `/var/tmp/portage/net-dialup/fbgetty-0.1.698/work/fbgetty-0.1.698/src' source='main.c' object='main.o' libtool=no \ depfile='.deps/main.Po' tmpdepfile='.deps/main.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f main.c || echo './'`main.c source='options.c' object='options.o' libtool=no \ depfile='.deps/options.Po' tmpdepfile='.deps/options.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f options.c || echo './'`options.c source='init.c' object='init.o' libtool=no \ depfile='.deps/init.Po' tmpdepfile='.deps/init.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f init.c || echo './'`init.c source='vt.c' object='vt.o' libtool=no \ depfile='.deps/vt.Po' tmpdepfile='.deps/vt.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f vt.c || echo './'`vt.c source='prompt.c' object='prompt.o' libtool=no \ depfile='.deps/prompt.Po' tmpdepfile='.deps/prompt.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f prompt.c || echo './'`prompt.c source='errors.c' object='errors.o' libtool=no \ depfile='.deps/errors.Po' tmpdepfile='.deps/errors.TPo' \ depmode=gcc3 /bin/sh ../config/depcomp \ x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include -I../include -O2 -pipe -march=k8 -msse3 -c `test -f errors.c || echo './'`errors.c options.c:154: error: expected expression before 'struct' options.c:154: error: initializer element is not constant options.c:154: error: (near initialization for 'env_options[0].offset') options.c:155: error: expected expression before 'struct' options.c:155: error: initializer element is not constant options.c:155: error: (near initialization for 'env_options[1].offset') options.c:158: error: expected expression before 'struct' options.c:158: error: initializer element is not constant options.c:158: error: (near initialization for 'env_options[2].offset') options.c:159: error: expected expression before 'struct' options.c:159: error: initializer element is not constant options.c:159: error: (near initialization for 'env_options[3].offset') options.c:160: error: expected expression before 'struct' options.c:160: error: initializer element is not constant options.c:160: error: (near initialization for 'env_options[4].offset') options.c:163: error: expected expression before 'struct' options.c:163: error: initializer element is not constant options.c:163: error: (near initialization for 'env_options[5].offset') options.c:164: error: expected expression before 'struct' options.c:164: error: initializer element is not constant options.c:164: error: (near initialization for 'env_options[6].offset') options.c:166: error: expected expression before 'struct' options.c:166: error: initializer element is not constant options.c:166: error: (near initialization for 'env_options[7].offset') options.c:167: error: expected expression before 'struct' options.c:167: error: initializer element is not constant options.c:167: error: (near initialization for 'env_options[8].offset') options.c:168: error: expected expression before 'struct' options.c:168: error: initializer element is not constant options.c:168: error: (near initialization for 'env_options[9].offset') options.c:170: error: expected expression before 'struct' options.c:170: error: initializer element is not constant options.c:170: error: (near initialization for 'env_options[10].offset') options.c:171: error: expected expression before 'struct' options.c:171: error: initializer element is not constant options.c:171: error: (near initialization for 'env_options[11].offset') options.c:172: error: expected expression before 'struct' options.c:172: error: initializer element is not constant options.c:172: error: (near initialization for 'env_options[12].offset') options.c:174: error: expected expression before 'struct' options.c:174: error: initializer element is not constant options.c:174: error: (near initialization for 'env_options[13].offset') options.c:175: error: expected expression before 'struct' options.c:175: error: initializer element is not constant options.c:175: error: (near initialization for 'env_options[14].offset') options.c:902: error: expected expression before 'struct' options.c:902: error: initializer element is not constant options.c:902: error: (near initialization for 'merge_option_list[0].offset') options.c:904: error: expected expression before 'struct' options.c:904: error: initializer element is not constant options.c:904: error: (near initialization for 'merge_option_list[1].offset') options.c:907: error: expected expression before 'struct' options.c:907: error: initializer element is not constant options.c:907: error: (near initialization for 'merge_option_list[2].offset') options.c:908: error: expected expression before 'struct' options.c:908: error: initializer element is not constant options.c:908: error: (near initialization for 'merge_option_list[3].offset') options.c:909: error: expected expression before 'struct' options.c:909: error: initializer element is not constant options.c:909: error: (near initialization for 'merge_option_list[4].offset') options.c:911: error: expected expression before 'struct' options.c:911: error: initializer element is not constant options.c:911: error: (near initialization for 'merge_option_list[5].offset') options.c:912: error: expected expression before 'struct' options.c:912: error: initializer element is not constant options.c:912: error: (near initialization for 'merge_option_list[6].offset') options.c:913: error: expected expression before 'struct' options.c:913: error: initializer element is not constant options.c:913: error: (near initialization for 'merge_option_list[7].offset') options.c:915: error: expected expression before 'struct' options.c:915: error: initializer element is not constant options.c:915: error: (near initialization for 'merge_option_list[8].offset') make[1]: *** [options.o] Error 1 make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory `/var/tmp/portage/net-dialup/fbgetty-0.1.698/work/fbgetty-0.1.698/src' make: *** [all-recursive] Error 1 * * ERROR: net-dialup/fbgetty-0.1.698 failed. * Call stack: * ebuild.sh, line 1695: Called dyn_compile * ebuild.sh, line 1033: Called qa_call 'src_compile' * ebuild.sh, line 44: Called src_compile * ebuild.sh, line 705: Called die * The specific snippet of code: * emake || die "emake failed" * The die message: * emake failed * * If you need support, post the topmost build error, and the call stack if relevant. * A complete build log is located at '/var/tmp/portage/net-dialup/fbgetty-0.1.698/temp/build.log'. emerge --info Portage 2.1.3.16 (default-linux/amd64/2007.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.22-gentoo-r8 x86_64) ================================================================= System uname: 2.6.22-gentoo-r8 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+ Timestamp of tree: Thu, 25 Oct 2007 12:30:09 +0000 distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [enabled] app-shells/bash: 3.2_p17-r1 dev-java/java-config: 1.3.7, 2.1.2-r1 dev-lang/python: 2.5.1-r3 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 sys-apps/baselayout: 1.12.10-r5 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.18-r1, 2.18.50.0.1 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.24 virtual/os-headers: 2.6.23 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe -march=k8 -msse3" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d" CXXFLAGS="-O2 -pipe -march=k8 -msse3" DISTDIR="/usr/portage/distfiles" FEATURES="ccache distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles http://trumpetti.atm.tut.fi/gentoo/ ftp://trumpetti.atm.tut.fi/gentoo/ http://ftp.public.fix.fi/gentoo/ ftp://ftp.public.fix.fi/gentoo http://mirror.ovh.net/gentoo-distfiles/ ftp://mirror.ovh.net/gentoo-distfiles/ http://ftp.club-internet.fr/pub/mirrors/gentoo ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ " LANG="ru_RU.UTF-8" LC_ALL="" LINGUAS="ru" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/xeffects" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="3dnow 3dnowext 7zip X a52 aac aalib acl alsa amd64 amrnb amrwb amuled arts avahi bash-completion berkdb bidi bitmap-fonts branding bzip2 cairo caps cdda cdio cli corba cracklib crypt css cups curl cvs daap dbus dc1394 devil dga directfb djvu dri dts dv dvb dvd dvdr dvdread emacs emovix enca encode esd expat extras fasttrack fat fbcon ffmpeg fidonet flac fontconfig fortran ftp fuse gd gdbm ggi gif glade glep glib glitz gnutella gnutls gpm gtk hal haskell iconv icq idle insecure-patches ipv6 irc isdnlog jabber javascript jpeg jpeg2k kde lame latex lcms libcaca libnotify libsamplerate live lzo mad maildir matroska midi mikmod mjpeg mmx mmxext mod mozsha1 mp2 mp3 mp4 mpeg mudflap multislot musepack musicbrainz ncurses nls nptl nptlonly ntfs nvidia ogg openal opengl openmp oss pam pcre pdf perl png pppd pvr python qt qt3 qt3support qt4 quicktime radio rar readline reflection reiserfs remote rss rtc rtsp sdl sdl-image server session shout skins slang smp sndfile sound speex spl sqlite srt srv sse sse2 ssl ssse3 stats stream svg svn symlink tcpd theora threads tiff tk toolkit-scroll-bars truetype truetype-fonts type1-fonts unicode userlocales utempter v41 v4l v4l2 vcd vesa visualization vlm vorbis wavpack wxwindows x254 x264 xanim xforms xhtml xinerama xml xorg xosd xprint xv xvid xvmc zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
From what I see, gcc-4.1 (and 4.3) don't consider offsetof as a constant. Should I redefine offsetof as follows? #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) Toolchain/gcc-porting teams, please advise.
offsetof is never a constant ... it is commonly a macro that expands to __builtin_offsetof(), but that requires you actually include the proper header file add this to options.c: #include <stddef.h>
Fixed in cvs without revision bump.