Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 362787 - sys-devel/gcc-4.5.2: libgomp.so is not linked against -lrt
Summary: sys-devel/gcc-4.5.2: libgomp.so is not linked against -lrt
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Development (show other bugs)
Hardware: x86 Linux
: Normal major (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-09 22:56 UTC by Heavenly Avenger
Modified: 2011-04-12 20:34 UTC (History)
1 user (show)

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


Attachments
config-fixincludes.log (config-fixincludes.log.gz,2.47 KB, application/octet-stream)
2011-04-09 23:17 UTC, Heavenly Avenger
Details
config-libmudflap.log (config-libmudflap.log.gz,3.22 KB, application/octet-stream)
2011-04-09 23:18 UTC, Heavenly Avenger
Details
Emerge's build log. (gcc452-build.log.gz,140.36 KB, application/octet-stream)
2011-04-09 23:21 UTC, Heavenly Avenger
Details
emerge --info output (gcc452-emerge-info.log,4.54 KB, text/plain)
2011-04-09 23:24 UTC, Heavenly Avenger
Details
emerge -pqv output (gcc452-emerge-pqv.log,288 bytes, text/plain)
2011-04-09 23:24 UTC, Heavenly Avenger
Details
config-libgomp.log (config-libgomp.log.gz,9.12 KB, application/octet-stream)
2011-04-11 12:09 UTC, Heavenly Avenger
Details
Here's the make.conf from the box I am working on this issue. (make.conf,2.18 KB, text/plain)
2011-04-11 12:20 UTC, Heavenly Avenger
Details
conftest.c with lotsa verbose options' output (conftest-verbose-compile.log.gz,5.99 KB, application/octet-stream)
2011-04-12 12:58 UTC, Heavenly Avenger
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Heavenly Avenger 2011-04-09 22:56:42 UTC
The above error means something went wrong on at least one phase of compilation before that part. Examining the logs, I noticed the following:

checking whether we are using the GNU C compiler...
configure: error: in `/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/fixincludes':
configure: error: C compiler cannot create executables
See `config.log' for more details.
(...)
configure: error: in `/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/i686-pc-linux-gnu/libmudflap':
configure: error: C compiler cannot create executables
See `config.log' for more details.
(...)

  Entering those directories and looking at the respective config.log (config-fixincludes.log and config-libmudflap.log attached) in each, I verified the error was about unresolved symbol for at least 'clock_gettime' and 'clock_getres'. I've read there is a flag you issue for the compiler that is needed (-lrt) in order to have these symbols accessible.

  As a dummy attempt, I tried just reproducing the config.log's command line, and for my surprise, both failed programs now succeeded. The first line that has changed on the config.log was this:

--- errored log:
configure:2918: checking for i686-pc-linux-gnu-gcc
configure:2945: result: /var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include   
configure:3214: checking for C compiler version
configure:3223: /var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include    --version >&5
xgcc (Gentoo 4.5.2 p1.1, pie-0.4.5) 4.5.2

--- succeeded log:
onfigure:2918: checking for i686-pc-linux-gnu-gcc
configure:2934: found /usr/bin/i686-pc-linux-gnu-gcc
configure:2945: result: i686-pc-linux-gnu-gcc
configure:3214: checking for C compiler version
configure:3223: i686-pc-linux-gnu-gcc --version >&5
i686-pc-linux-gnu-gcc (Gentoo 4.4.3-r2 p1.2) 4.4.3

  Of course, we can see that it is actually using my current gcc version. It seems that, inside the sandbox, the compiler can not count on that -lrt library at all. I have already tried resetting the CFLAGS, MAKEOPTS=-j1, LDFLAGS, but I could not even change the error. I am almost out of ideas on how to solve this problem... I did not try yet to remove the 'sandbox' feature, as I am afraid it could lead me to an unresponsive system. I am almost out of options here.

Reproducible: Didn't try

Steps to Reproduce:
1.emerge -a sys-devel/gcc
2.say yes
3.wait some time
Actual Results:  
Emerge fails

Expected Results:  
Emerge succeeds and gcc-4.5.2 gets in the list of gcc-config, possibly removing 4.4.3 one.

I have recently made an emerge --sync from a box that was last synched more than a year ago.
Comment 1 Heavenly Avenger 2011-04-09 23:13:03 UTC
The actual date of the last emerge is not a year older, but around september/2010, which is nevertheless a lot of time anyway. :)
Please give me some time while I prepare the logs to attach to the bug report.
Comment 2 Heavenly Avenger 2011-04-09 23:17:52 UTC
Created attachment 269237 [details]
config-fixincludes.log

This is the log which shows errors from the fixincludes directory.
Comment 3 Heavenly Avenger 2011-04-09 23:18:57 UTC
Created attachment 269239 [details]
config-libmudflap.log

This is the output of configure in the libmudflap directory.
Comment 4 Heavenly Avenger 2011-04-09 23:21:58 UTC
Created attachment 269241 [details]
Emerge's build log.

Please ignore messages showing errors on PWD. I just run emerge when I was still into the directory where the temporary files were. This did not change the error message from the several times I compiled (most of them I moved out of the /var/tmp/portage directory).
Comment 5 Heavenly Avenger 2011-04-09 23:24:00 UTC
Created attachment 269243 [details]
emerge --info output
Comment 6 Heavenly Avenger 2011-04-09 23:24:21 UTC
Created attachment 269245 [details]
emerge -pqv output
Comment 7 Heavenly Avenger 2011-04-09 23:26:02 UTC
This completes the battery of attachments upload. Please let me know if there's something else useful that could be sent.
Comment 8 SpanKY gentoo-dev 2011-04-11 00:17:33 UTC
that libgomp.so is supposed to be linked against librt.so itself.  your configure output is showing things go wrong earlier:
checking for clock_gettime... yes

that should of course say:
checking for clock_gettime... no
checking for clock_gettime in -lrt... yes

so attach the config.log from the libgomp subdirs
Comment 9 Heavenly Avenger 2011-04-11 12:03:24 UTC
I was able to compile (using -aB in order for it not to enter the system if successfull but yet compile everything) if I specified:
USE="-mudflap -nls -nptl -openmp" emerge -aB gcc

It still points towards libgomp not being linked against -lrt.

What I don't understand now is why gcc-4.5.2 is not masked for me if it was supposed to be masked and I did not explicitly unmask it. I have no package.keywords not package.accept_keywords. My previous gcc version was 4.4.3 as of september 2010.
Comment 10 Heavenly Avenger 2011-04-11 12:09:42 UTC
Created attachment 269475 [details]
config-libgomp.log

I noticed here, the answer for 'looking for config_gettime' results to 'yes' as well.

---
configure:15032: checking for getloadavg
configure:15032: /var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include    -o conftest -g -march=native -pipe -DSQLITE_HAVE_ISNAN -O2 -pthread   conftest.c  >&5
configure:15032: $? = 0
configure:15032: result: yes
configure:15032: checking for clock_gettime
configure:15032: /var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/xgcc -B/var/tmp/portage/sys-devel/gcc-4.5.2/work/build/./gcc/ -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include    -o conftest -g -march=native -pipe -DSQLITE_HAVE_ISNAN -O2 -pthread   conftest.c  >&5
configure:15032: $? = 0
configure:15032: result: yes
---
Comment 11 Heavenly Avenger 2011-04-11 12:13:06 UTC
Ah! By the way, I have already tried:
LDFLAGS=-lrt emerge sys-devel/gcc

It seems LDFLAGS is simply ignored as the same error ocurred. Anyway if that worked, I would expect larger binaries uselessly (is --as-needed still a default?)
Comment 12 Heavenly Avenger 2011-04-11 12:20:22 UTC
Created attachment 269481 [details]
Here's the make.conf from the box I am working on this issue.

Please note: Although there are these ricer flags on CFLAGS/CXXFLAGS, I have already tried with them (both at the same time) commented out, tried also MAKE_OPTS as -j3, j2 and j1.

It seems, if I disable openmp (USE=-openmp) the whole thing works out. I will confirm that information in a while.
Comment 13 SpanKY gentoo-dev 2011-04-12 02:18:37 UTC
you're using ~x86, so installing gcc-4.5.2 shouldnt be a surprise.

try running the command in question:
$ echo 'main(){return clock_gettime();}' > conftest.c
$ gcc -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ \
 -isystem /usr/i686-pc-linux-gnu/include \
 -isystem /usr/i686-pc-linux-gnu/sys-include \
 -o conftest -g -march=native -pipe -DSQLITE_HAVE_ISNAN -O2 -pthread conftest.c

if that passes, add the flags "-v -Wl,--verbose -Wl,-M" and post the full output as an attachment
Comment 14 Heavenly Avenger 2011-04-12 12:58:31 UTC
Created attachment 269667 [details]
conftest.c with lotsa verbose options' output

Here is the output of the command:
gcc -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/  -isystem /usr/i686-pc-linux-gnu/include  -isystem /usr/i686-pc-linux-gnu/sys-include  -o conftest -g -march=native -pipe -DSQLITE_HAVE_ISNAN -O2 -pthread conftest.c -v -Wl,--verbose -Wl,-M

Just a heads up: I was able to compile the other directories once I moved directly to them and compiled. Of course, during emerge phase, the compiler used is the half-done gcc-4.5.2. As in the sandbox (emerge FEATURE), I expect the environment not to be the same as when I just run the plain command using my 4.4.3 already working compiler.
With 'other directories' I mean the failed fixincludes and libmudflap. Analysing the configure scripts, I noticed I always use gcc 4.4.3 when I run commands from commandline; when emerge does the configures, it really finds the 4.5.2 compiler.
The detailed comments of this 'heads up' are in the first comment, at the point where I start with 'As a dummy attempt'.
Comment 15 Heavenly Avenger 2011-04-12 13:02:44 UTC
Should it be useful for anything:
$ ./conftest; echo $?
255
$
Comment 16 SpanKY gentoo-dev 2011-04-12 17:14:46 UTC
your glibc looks like it is screwed up:

libgomp.so.1 needed by /lib/libpthread.so.0
found libgomp.so.1 at /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/libgomp.so.1
librt.so.1 needed by /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/libgomp.so.1
found librt.so.1 at /lib/librt.so.1

libpthread.so should *not* be linked against libgomp.so.

that make.conf you posted is not even close to the `emerge --info` you posted originally.  what is going on ?  did you run it on the wrong machine, or are you purposefully hiding info from us ?

further, that LDFLAGS=-lgomp is simply stupid.  you screwed up your system thus you get to fix it.  please dont waste our time with this kind of crap.
Comment 17 Heavenly Avenger 2011-04-12 19:18:04 UTC
  Of course I did not do that 'emerge --info vs make.conf' in purpose. As I said several times, I've changed lotsa options in order to try and find some combination that could work with that. When I took emerge --info I really had the lines CFLAGS commented out, thus the different output. In order to clear that out, I have this combo command, which shows you the same machine in the emerge --info with the options updated:
---- paste start ----
# cat /etc/make.conf ; emerge --info
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O3 -march=native -pipe -funroll-all-loops -fprefetch-loop-arrays -ftree-parallelize-loops=3 -ffast-math -DSQLITE_HAVE_ISNAN"
#CFLAGS="-O3 -march=native -pipe -funroll-all-loops -fprefetch-loop-arrays -ftree-parallelize-loops=3"
#CFLAGS="-O3 -march=k8 -pipe"

CXXFLAGS="${CFLAGS}"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="i686-pc-linux-gnu"

#LDFLAGS="${LDFLAGS} -lgomp"
#LDFLAGS="-lgomp"
#LDFLAGS="-O3 -lgomp"
LDFLAGS="-O3"

GENTOO_MIRRORS="http://mirror.mcs.anl.gov/pub/gentoo/ rsync://mirror.mcs.anl.gov/gentoo/ ftp://mirror.mcs.anl.gov/pub/gentoo/ ftp://gentoo.chem.wisc.edu/gentoo/ rsync://gentoo.chem.wisc.edu/gentoo/ http://gentoo.chem.wisc.edu/gentoo/ http://www.cyberuse.com/gentoo/ http://gentoo.mirrors.easynews.com/linux/gentoo/ http://chi-10g-1-mirror.fastsoft.net/pub/linux/gentoo/gentoo-distfiles/ ftp://chi-10g-1-mirror.fastsoft.net/pub/linux/gentoo/gentoo-distfiles/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://gentoo.mirrors.tds.net/gentoo rsync://gentoo.mirrors.tds.net/gentoo http://gentoo.mirrors.tds.net/gentoo ftp://ftp.lug.udel.edu/pub/gentoo/ http://mirror.lug.udel.edu/pub/gentoo/ rsync://gentoo.cs.uni.edu/gentoo-distfiles http://gentoo.cs.uni.edu/"

SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"

MAKEOPTS="-j2"

USE="ipv6 fortran openmp -X -kde -gtk -gtk2 -alsa -arts -qt -qt3 -gnome -cups lzma lzo crypt bzip2 zlib bzlib ssl png readline perl python tcl ncurses snmp ruby curl bas-completion mmx -ldap gdbm threads xml cxx net mysql mmx mmxext 3dnow 3dnowext 3dnowprefetch sse sse2 ithreads bash-completion vim-pager maildrop spamassassin aio suexec apache2 bcmath cgi curlwrappers ftp gd mysqli mysqlnd sqlite sqlite3 zip odbc jpeg -xcb bittorrent gnutls expat cvs subversion fontconfig truetype"
# lm_sensors openntpd vim-syntax sensord

ACCEPT_KEYWORDS="~x86"

# Apache - Suexec stuff:
SUEXEC_DOCROOT="/home/"
SUEXEC_USERDIR="public_html"
SUEXEC_MINGID="100"
SUEXEC_MINUID="500"
Portage 2.1.9.45 (default/linux/x86/10.0, gcc-4.4.3, glibc-2.13-r2, 2.6.35-gentoo-r4 i686)
=================================================================
System uname: Linux-2.6.35-gentoo-r4-i686-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_5200+-with-gentoo-2.0.2
Timestamp of tree: Tue, 05 Apr 2011 20:15:01 +0000
app-shells/bash:     4.2_p8
dev-lang/python:     2.6.5-r3, 2.7.1-r1, 3.1.3-r1
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.68
sys-devel/automake:  1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       3.4.6-r2, 4.4.3-r2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=native -pipe -funroll-all-loops -fprefetch-loop-arrays -ftree-parallelize-loops=3 -ffast-math -DSQLITE_HAVE_ISNAN"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/bind /var/qmail/alias /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O3 -march=native -pipe -funroll-all-loops -fprefetch-loop-arrays -ftree-parallelize-loops=3 -ffast-math -DSQLITE_HAVE_ISNAN"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://mirror.mcs.anl.gov/pub/gentoo/ rsync://mirror.mcs.anl.gov/gentoo/ ftp://mirror.mcs.anl.gov/pub/gentoo/ ftp://gentoo.chem.wisc.edu/gentoo/ rsync://gentoo.chem.wisc.edu/gentoo/ http://gentoo.chem.wisc.edu/gentoo/ http://www.cyberuse.com/gentoo/ http://gentoo.mirrors.easynews.com/linux/gentoo/ http://chi-10g-1-mirror.fastsoft.net/pub/linux/gentoo/gentoo-distfiles/ ftp://chi-10g-1-mirror.fastsoft.net/pub/linux/gentoo/gentoo-distfiles/ ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://gentoo.mirrors.tds.net/gentoo rsync://gentoo.mirrors.tds.net/gentoo http://gentoo.mirrors.tds.net/gentoo ftp://ftp.lug.udel.edu/pub/gentoo/ http://mirror.lug.udel.edu/pub/gentoo/ rsync://gentoo.cs.uni.edu/gentoo-distfiles http://gentoo.cs.uni.edu/"
LDFLAGS="-O3"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
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="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="3dnow 3dnowext 3dnowprefetch acl aio apache2 bas-completion bash-completion bcmath berkdb bittorrent bzip2 bzlib cgi cli cracklib crypt curl curlwrappers cvs cxx dri expat fontconfig fortran ftp gd gdbm gnutls gpm iconv ipv6 ithreads jpeg lzma lzo maildrop mmx mmxext modules mudflap mysql mysqli mysqlnd ncurses net nls nptl nptlonly odbc openmp pam pcre perl png pppd python readline ruby session snmp spamassassin sqlite sqlite3 sse sse2 ssl subversion suexec sysfs tcl tcpd threads truetype unicode vim-pager x86 xml xorg zip 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" 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, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
---- paste end ----

You know you could use better words, other than 'crap', or 'waste our time', 'screwed your system'. I am not testing you nor no one of the other people who voluntarily help maintain gentoo. I didn't.. I don't know what I have done to screw the system up. I mean to find it out but still I thought I could get some directions from the people around gentoo bugzilla.

Despite all your pity tongue and inappropriate words, you gave me some directions, for what I am thankful. I just hope one day you rethink your ways on judging other people, or at least does not assume they are against you at sight. Last, I wish someone else attended to this request so I did not have to read such rude arguments.
Comment 18 Heavenly Avenger 2011-04-12 20:34:12 UTC
It seems the problem was resolved. I'm not sure if all this was really needed but the steps were:

- remove -lgomp from LDFLAGS in make.conf
emerge glibc
emerge --oneshot libtool
emerge gcc

Then voila, it worked like a charm.