Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 374505 - dev-util/gperf-3.0.4: compile error collect2: ld returned 1 exit status
Summary: dev-util/gperf-3.0.4: compile error collect2: ld returned 1 exit status
Status: RESOLVED NEEDINFO
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: x86 Linux
: Normal major (vote)
Assignee: Anthony Basile
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-07-09 03:53 UTC by Liran M
Modified: 2013-05-26 23:20 UTC (History)
0 users

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 Liran M 2011-07-09 03:53:40 UTC
Hi

Gentoo on Vbox with Q6600 512MB RAM.

gcc version 4.4.5

cat /etc/make.conf:
localhost ~ # cat /etc/make.conf
CFLAGS="-fno-strict-aliasing -fomit-frame-pointer -fstack-protector-all -falign-functions=32 -falign-loops=32 -fforce-addr -Os -pipe -march=native"
CXXFLAGS="-fno-strict-aliasing -fomit-frame-pointer -fstack-protector-all -falign-functions=32 -falign-loops=32 -fforce-addr -Os -pipe -march=native"
CHOST="i686-pc-linux-gnu"
FEATURES="metadata-transfer sandbox candy"
USE="(multilib) gtk static-libs truetype postgres freetype jpg jpeg png gif imap ttf winscp passwd scp X gnutls mysql v4l2 extras list threads ithreads acpi bash-completion bzip2 crypt cracklib css ctype apache2 curl curlwrappers dbus encode ftp gcj gd geoip udev ipv6 lua ncurses python readline sockets socks5 sqlite sse sse2 ssl suid unicode vim-syntax xml php perlsuid"
MAKEOPTS="-j2 -s"
INPUT_DEVICES="virtualbox evdev"
VIDEO_CARDS="virtualbox"
FETCHCOMMAND="/usr/bin/axel -a -n 8 -o /\${DISTDIR}/\${FILE} -a \${URI}"
RESUMECOMMAND="/usr/bin/axel -a -n 8 -o /\${DISTDIR}/\${FILE} -a \${URI}"
GENTOO_MIRRORS="http://mirror.isoc.org.il/pub/gentoo/"

so when I try to emerge -q gpref this is the output with the error below:
localhost ~ # emerge -q gperf
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-util/gperf-3.0.4
>>> Failed to emerge dev-util/gperf-3.0.4, Log file:
>>>  '/var/tmp/portage/dev-util/gperf-3.0.4/temp/build.log'
 * Package:    dev-util/gperf-3.0.4
 * Repository: gentoo
 * Maintainer: maintainer-needed@gentoo.org
 * USE:        elibc_glibc kernel_linux userland_GNU x86
 * FEATURES:   sandbox
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
=== configuring in lib (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/lib)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
checking for i686-pc-linux-gnu-ranlib... i686-pc-linux-gnu-ranlib
checking for a BSD compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
=== configuring in src (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/src)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
checking for a BSD compatible install... /usr/bin/install -c
checking for stack-allocated variable-size arrays... yes
checking for rand in -lm... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
=== configuring in tests (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/tests)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
configure: creating ./config.status
config.status: creating Makefile
=== configuring in doc (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/doc)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for a BSD compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
./output.cc: In member function 'void Output::output()':
./output.cc:2034: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result
./output.cc:2101: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_val_compare_and_swap_4'
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_sub_and_fetch_4'
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_fetch_and_add_4'
collect2: ld returned 1 exit status
make[1]: *** [gperf] Error 1
make: *** [all] Error 2
emake failed
 * ERROR: dev-util/gperf-3.0.4 failed (compile phase):
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line  56:  Called src_compile
 *   environment, line 138:  Called _eapi2_src_compile
 *     ebuild.sh, line 665:  Called die
 * The specific snippet of code:
 *              emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =dev-util/gperf-3.0.4',
 * the complete build log and the output of 'emerge -pqv =dev-util/gperf-3.0.4'.
 * The complete build log is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/environment'.
 * S: '/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4'

 * Messages for package dev-util/gperf-3.0.4:

 * ERROR: dev-util/gperf-3.0.4 failed (compile phase):
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line  56:  Called src_compile
 *   environment, line 138:  Called _eapi2_src_compile
 *     ebuild.sh, line 665:  Called die
 * The specific snippet of code:
 *              emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =dev-util/gperf-3.0.4',
 * the complete build log and the output of 'emerge -pqv =dev-util/gperf-3.0.4'.
 * The complete build log is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/environment'.
 * S: '/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4'


Reproducible: Always

Steps to Reproduce:
1. gcc 4.4.5
2. make sure your /etc/make.conf is same as mine
3. emerge -q gpref will give you an error
Actual Results:  
compile error and package didnt insatll

Expected Results:  
gpref should be insatlled as order

build.log:

 * Package:    dev-util/gperf-3.0.4
 * Repository: gentoo
 * Maintainer: maintainer-needed@gentoo.org
 * USE:        elibc_glibc kernel_linux userland_GNU x86
 * FEATURES:   sandbox
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
=== configuring in lib (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/lib)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
checking for i686-pc-linux-gnu-ranlib... i686-pc-linux-gnu-ranlib
checking for a BSD compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
=== configuring in src (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/src)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
checking for a BSD compatible install... /usr/bin/install -c
checking for stack-allocated variable-size arrays... yes
checking for rand in -lm... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
=== configuring in tests (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/tests)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... i686-pc-linux-gnu-gcc -E
checking for i686-pc-linux-gnu-g++... i686-pc-linux-gnu-g++
checking whether we are using the GNU C++ compiler... yes
checking whether i686-pc-linux-gnu-g++ accepts -g... yes
checking how to run the C++ preprocessor... i686-pc-linux-gnu-g++ -E
configure: creating ./config.status
config.status: creating Makefile
=== configuring in doc (/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4/doc)
configure: running /bin/sh ./configure '--prefix=/usr'  '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' --cache-file=/dev/null --srcdir=.
checking whether make sets $(MAKE)... yes
checking for a BSD compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
./output.cc: In member function 'void Output::output()':
./output.cc:2034: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result
./output.cc:2101: warning: ignoring return value of 'size_t fwrite(const void*, size_t, size_t, FILE*)', declared with attribute warn_unused_result
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_val_compare_and_swap_4'
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_sub_and_fetch_4'
/usr/lib/gcc/i686-pc-linux-gnu/4.4.5/libstdc++.so: undefined reference to `__sync_fetch_and_add_4'
collect2: ld returned 1 exit status
make[1]: *** [gperf] Error 1
make: *** [all] Error 2
emake failed
 * ERROR: dev-util/gperf-3.0.4 failed (compile phase):
 *   emake failed
 *
 * Call stack:
 *     ebuild.sh, line  56:  Called src_compile
 *   environment, line 138:  Called _eapi2_src_compile
 *     ebuild.sh, line 665:  Called die
 * The specific snippet of code:
 *              emake || die "emake failed"
 *
 * If you need support, post the output of 'emerge --info =dev-util/gperf-3.0.4',
 * the complete build log and the output of 'emerge -pqv =dev-util/gperf-3.0.4'.
 * The complete build log is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-util/gperf-3.0.4/temp/environment'.
 * S: '/var/tmp/portage/dev-util/gperf-3.0.4/work/gperf-3.0.4'
Comment 1 SpanKY gentoo-dev 2013-05-26 23:20:13 UTC
set sane CFLAGS, update to the latest gcc version (4.6.x), and see if things start working then