Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 263938 - Emerging gcc-4.3.3-r1 fails when bootstrapping Prefix Portage
Summary: Emerging gcc-4.3.3-r1 fails when bootstrapping Prefix Portage
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: x86 Linux
: High major with 1 vote (vote)
Assignee: Gentoo Prefix
URL: http://gcc.gnu.org/PR42735
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-03-27 07:45 UTC by Rabbe Fogelholm
Modified: 2011-08-10 12:22 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Rabbe Fogelholm 2009-03-27 07:45:11 UTC
Scenario: Bootstrapping with USE=X added in etc/make.conf before the `emerge -e system' step. Platform is SUSE 10 Enterprise SP1.

Failure noted with gcc-4.3.3-r1, yesterday bootstrapping was successful with gcc-4.2.4-r1. Console log:

/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/gcc-4.3.3/libstdc++-v3/include/precompiled/stdtr1c++.h:34:25: warning: /local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch: not used because `__NO_INLINE__' not defined
mkdir -p ./i686-pc-linux-gnu/bits/extc++.h.gch
/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/./gcc/xgcc -shared-libgcc -B/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/./gcc -nostdinc++ -L/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/src -L/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/local/scratch/nightly/2009-03-27/usr/i686-pc-linux-gnu/bin/ -B/local/scratch/nightly/2009-03-27/usr/i686-pc-linux-gnu/lib/ -isystem /local/scratch/nightly/2009-03-27/usr/i686-pc-linux-gnu/include -isystem /local/scratch/nightly/2009-03-27/usr/i686-pc-linux-gnu/sys-include -Winvalid-pch -x c++-header -O2 -pipe   -D_GNU_SOURCE -I/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/include -I/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/gcc-4.3.3/libstdc++-v3/libsupc++ -O2 -g /local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/gcc-4.3.3/libstdc++-v3/include/precompiled/extc++.h -o i686-pc-linux-gnu/bits/extc++.h.gch/O2g.gch
make[2]: Leaving directory `/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build/i686-pc-linux-gnu/libstdc++-v3/include'
make[1]: Leaving directory `/local/scratch/portage/sys-devel/gcc-4.3.3-r1/work/build'
make: *** [bootstrap-lean] Error 2
 * ERROR: sys-devel/gcc-4.3.3-r1 failed:
 *   emake failed with bootstrap-lean
Comment 1 Fabian Groffen gentoo-dev 2009-03-27 09:04:55 UTC
I only see a warning, not an error in your snippet.  Is there any?
Comment 2 Pinky 2009-03-31 23:35:52 UTC
This bug probably duplicate:
http://bugs.gentoo.org/show_bug.cgi?id=262912
Comment 3 Fabian Groffen gentoo-dev 2009-04-03 17:26:09 UTC
4.3.3-r2 does the same?
Comment 4 Rabbe Fogelholm 2009-04-04 07:41:12 UTC
Yes, at the end of the console log I get

make[2]: Leaving directory `/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/build/i686-pc-linux-gnu/libstdc++-v3/include'
make[1]: Leaving directory `/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/build'
make: *** [bootstrap-lean] Error 2
 * ERROR: sys-devel/gcc-4.3.3-r2 failed:
 *   emake failed with bootstrap-lean
Comment 5 Fabian Groffen gentoo-dev 2009-04-04 10:31:19 UTC
that's portage's error, not the error from the gcc build process.  You need to search up in the build.log (for "make ***", for example) untill you find the real error/problem.
Comment 6 Rabbe Fogelholm 2009-04-04 15:36:12 UTC
Could this be it then?

checking for RLIMIT_DATA... if /local/tmp/i/bin/bash ./libtool --tag=CC --mode=compile /local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/build/./gcc/xgcc -B/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/build/./gcc/ -B/local/scratch/nightly/2009-04-04/usr/i686-pc-linux-gnu/bin/ -B/local/scratch/nightly/2009-04-04/usr/i686-pc-linux-gnu/lib/ -isystem /local/scratch/nightly/2009-04-04/usr/i686-pc-linux-gnu/include -isystem /local/scratch/nightly/2009-04-04/usr/i686-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/gcc-4.3.3/libgfortran -I.  -iquote/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/gcc-4.3.3/libgfortran/io -I/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/gcc-4.3.3/libgfortran/../gcc -I/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/gcc-4.3.3/libgfortran/../gcc/config -I../.././gcc -D_GNU_SOURCE  -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wextra -Wwrite-strings -O2 -g -O2 -pipe   -MT compile_options.lo -MD -MP -MF ".deps/compile_options.Tpo" -c -o compile_options.lo `test -f 'runtime/compile_options.c' || echo '/local/scratch/portage/sys-devel/gcc-4.3.3-r2/work/gcc-4.3.3/libgfortran/'`runtime/compile_options.c; \
	then mv -f ".deps/compile_options.Tpo" ".deps/compile_options.Plo"; else rm -f ".deps/compile_options.Tpo"; exit 1; fi
{standard input}: Assembler messages:
{standard input}:414: Error: symbol `pread64' is already defined
make[3]: *** [backtrace.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
Comment 7 Fabian Groffen gentoo-dev 2009-04-04 15:44:13 UTC
yep, that's it.

what's your current compiler?  (gcc --version will do)
Comment 8 Rabbe Fogelholm 2009-04-05 08:58:10 UTC
ws4941 ~> uname -a
Linux ws4941 2.6.16.53-0.16-smp #1 SMP Tue Oct 2 16:57:49 UTC 2007 i686 i686 i38
6 GNU/Linux
ws4941 ~> cat /etc/SuSE-release 
SUSE Linux Enterprise Desktop 10 (i586)
VERSION = 10
PATCHLEVEL = 1
ws4941 ~> gcc --version
gcc (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Comment 9 Rabbe Fogelholm 2009-04-18 20:27:23 UTC
gcc has advanced to 4.3.3-r2 now but the bootstrapping stoppage remains the same on my platform.
Comment 10 Rabbe Fogelholm 2009-04-20 09:08:14 UTC
Declaring >=sys-devel/gcc-4.3.0 in etc/portage/package.mask can be used as a workaround. This causes gcc 4.2.4-r1 p1.1 to be used instead, with successful bootstrapping.
Comment 11 Fabian Groffen gentoo-dev 2009-05-15 18:14:30 UTC
haubi, with recent problems, should we mask 4.3?
Comment 12 Michael Haubenwallner (RETIRED) gentoo-dev 2009-05-18 08:36:00 UTC
As long as it does not have an inclhack.def to fix >=glibc-2.5/<glibc-2.8 headers to work with _FORTIFY_SOURCE, yes. But this might apply for prefix/linux only.
Comment 13 Fabian Groffen gentoo-dev 2009-08-27 12:20:15 UTC
I cannot fix this appropriately
Comment 14 Reinis Danne 2010-01-21 21:31:05 UTC
The same issue with gcc-4.4.2 trying to bootstrap Prefix on Slackware 12.0.0. It fails at the final system recompilation (emerge -e system) before 
creating startscript (as in Solaris instructions).
$ gcc --version
gcc (GCC) 4.2.4 (Gentoo 4.2.4-r01.2 p1.1)
Comment 15 Rabbe Fogelholm 2010-04-09 09:06:55 UTC
The problem with gcc versions is still a stopper when following http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-solaris.xml (April 5, 2010 version). The `emerge --oneshot' command says to emerge a 4.2 version, which succeeds (4.2.4-r01.2 gets emerged). However, the `emerge -e system' step tries to emerge version 4.4.3, which fails.

My workaround for now is to have a line >=sys-devel/gcc-4.3 in etc/portage/package.mask. This line has to be there before the `emerge -e system' step.
Comment 16 Fabian Groffen gentoo-dev 2010-04-09 09:09:21 UTC
darkside: you're the linux dude; should we mask?  I seem to have sys-devel/gcc-4.4.3 installed on my Fedora 12 box.
Comment 17 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2010-04-09 12:54:54 UTC
(In reply to comment #16)
> darkside: you're the linux dude; should we mask?  I seem to have
> sys-devel/gcc-4.4.3 installed on my Fedora 12 box.
> 

No. I think the problem all boils down to glibc-2.5.

We have bug 290263 & bug 306941 on this subject.

Possible fixes: USE=-fortran, CFLAGS+="-std=c99" or USE=vanilla (Some not-yet-identified gentoo patch messes it up too)
Comment 18 Gergan Penkov 2010-05-02 09:25:45 UTC
(In reply to comment #17)
> (In reply to comment #16)
> > darkside: you're the linux dude; should we mask?  I seem to have
> > sys-devel/gcc-4.4.3 installed on my Fedora 12 box.
> > 
> 
> No. I think the problem all boils down to glibc-2.5.
> 
> We have bug 290263 & bug 306941 on this subject.
> 
> Possible fixes: USE=-fortran, CFLAGS+="-std=c99" or USE=vanilla (Some
> not-yet-identified gentoo patch messes it up too)
> 

USE=-fortran helps emerging gcc, but after that, breaks compilation of various packages. The problem seems to be including stdint.h and unistd.h in the same file, should not be the case but it triggers the error:

| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif

Compiling it brings the following error:

{standard input}: Assembler messages:
{standard input}:131: Error: symbol `pread64' is already defined

CFLAGS+="-std=c99" does not by these packages because configure already uses it:
armv7a-softfloat-linux-gnueabi-gcc -c -Os -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -std=c99  conftest.c >&5

In fact removing -std=c99 results in correct compilation.

This happens on palm pre using codesourcery-arm-2007q3 glibc, trying to bootstrap prefixed portage.
Comment 19 Rabbe Fogelholm 2010-11-26 09:40:32 UTC
This is a long-standing bug that may spoil the "out-of-the-box" experience with Gentoo Prefix. I re-checked yesterday, and on my platform (SUSE Enterprise 10 SP2) I now get the following:

- The first gcc to be emerged is sys-devel/gcc-4.2.4-r01.2, successfully.

- In the 'USE=-git emerge -u system' step gcc-4.4.5 gets emerged, which fails with

{standard input}: Assembler messages:
{standard input}:458: Error: symbol `pread64' is already defined

My workaround is to insert'>=sys-devel/gcc-4.3' into etc/portage/package.mask. Perhaps this is platform dependent. Anyway, I am thinking that the http://www.gentoo.org/proj/en/gentoo-alt/prefix/bootstrap-solaris.xml page could mention that this is a troublesome spot and that something needs to be done, at least on certain platforms.
Comment 20 Michael Haubenwallner (RETIRED) gentoo-dev 2010-11-26 10:17:01 UTC
As it isn't mentioned here yet: This looks like http://gcc.gnu.org/PR42735
Comment 21 Rabbe Fogelholm 2010-12-12 21:24:15 UTC
This problem appears to be platform dependent. On Debian "lenny" 5.0.7 sys-devel/gcc-4.4.5 is emerged with no problems during bootstrapping. Perhaps the differing glibc versions is the reason: SUSE Enterprise 10 SP2 has glibc 2.4 whereas Debian lenny has glibc 2.7.
Comment 22 Fabian Groffen gentoo-dev 2011-04-06 17:42:12 UTC
and gcc-4.5.*?
Comment 23 Josh Doe 2011-08-09 18:03:49 UTC
I'm having the same 'Error: symbol `pread64' is already defined' during compilation of sys-devel/gcc-4.5.2-r00.1 as part of the 'emerge -e system' command as described in the Solaris bootstrap instructions. I followed the instructions to a T, except that I had to use emerge-webrsync. To finish the installation (except for upgrading gcc), I added '>=sys-devel/gcc-4.3' to '$EPREFIX/etc/portage/package.mask' and executed 'emerge -e --resume system'.

Platform: Linux
Distribution: CentOS 5.6
GCC version that compiled the bootstrap GCC: 4.1.2 20080704 (Red Hat 4.1.2-50)
Bootstrap GCC version: 4.1.2 20080704 (Red Hat 4.1.2-50)
GCC that failed to emerge: sys-devel/gcc-4.5.2-r00.1

Full emerge --info output:

Portage 2.2.01.19011-prefix (prefix/linux/x86, gcc-4.2.4, unavailable, 2.6.18-238.19.1.el5 i686)
=================================================================
System uname: Linux-2.6.18-238.19.1.el5-i686-Intel-R-_Core-TM-2_Quad_CPU_Q9550_@_2.83GHz-with-redhat-5.6-Final
Timestamp of tree: Mon, 08 Aug 2011 21:38:32 +0000
app-shells/bash:      4.2_p10
dev-lang/python:      2.7.2
dev-util/pkgconfig:   0.25-r2
sys-devel/autoconf:   2.68
sys-devel/automake:   1.11.1
sys-devel/binutils:   2.21.51.0.7
sys-devel/gcc:        4.2.4-r01.3
sys-devel/gcc-config: 1.4.1-r00.2
sys-devel/libtool:    2.4-r01.1
sys-devel/make:       3.82
Repositories: gentoo_prefix
Installed sets: 
ACCEPT_KEYWORDS="~x86-linux"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/portage /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/local/gentoo/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs collision-protect distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="en_US.UTF-8"
LDFLAGS="-Wl,-O1"
PKGDIR="/local/gentoo/usr/portage/packages"
PORTAGE_CONFIGROOT="/local/gentoo/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/local/gentoo/var/tmp"
PORTDIR="/local/gentoo/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.prefix.freens.org/gentoo-portage-prefix"
USE="berkdb bzip2 cli cracklib crypt cxx dri fortran gdbm iconv ipv6 modules mudflap ncurses nls nptl nptlonly openmp pcre perl pppd prefix python readline session ssl sysfs tcpd unicode x86 xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="braindump flow karbon kexi kpresenter krita tables words" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 24 Josh Doe 2011-08-09 18:07:41 UTC
(In reply to comment #23)
> Platform: Linux
> Distribution: CentOS 5.6
> GCC version that compiled the bootstrap GCC: 4.1.2 20080704 (Red Hat 4.1.2-50)
> Bootstrap GCC version: 4.1.2 20080704 (Red Hat 4.1.2-50)
> GCC that failed to emerge: sys-devel/gcc-4.5.2-r00.1

I should have said:

Bootstrap GCC version: 4.2.4 (Gentoo 4.2.4-r01.3 p1.1)
Comment 25 Josh Doe 2011-08-10 12:22:23 UTC
I've gotten sys-devel/gcc-4.5.2-r00.1 to emerge successfully by excluding the offending part of gcc, fortran support, by running 'USE=-fortran emerge sys-devel/gcc'.

As indicated on the GCC bug (http://gcc.gnu.org/PR42735), it might be a problem with some versions of glibc. Executing '/lib/libc.so.6' shows that the host system has a glibc version of 2.5, released in 2006, so it is likely that's the cause of this problem. However as I don't have root access I can't upgrade glibc to determine if that is the case.