From: Momsen R. <mom...@we...> - 2006-05-13 16:20:10
|
Hi there, Compiling the CVS-version of embrace fails, if you pass "-Wl,--as-needed" to the linker (The error is obviously not due to the other optimizations used in the snippet at the bottom because it compiles fine with LDFLAGS="" as well as LDFLAGS="-Wl,-O1 -Wl,--sort-common"). When I try to build it with LDFLAGS="-Wl,--as-needed", it fails with the following error: i686-pc-linux-gnu-gcc -I./include -I/usr/include -I/usr/include/enlightenment -DUSE_E_CONFIG_H -I/usr/include -O2 -march=athlon-tbird -fomit-frame-pointer -pipe -Wl,-O1 -Wl,--as-needed -Wl,--sort-common -o embrace main.o -Wl,--export-dynamic -L/usr/lib -L/usr/X11R6/lib /usr/lib/libedb.so /usr/lib/libedje.so /usr/lib/libecore_config.so /usr/lib/libecore_ipc.so /usr/lib/libecore_con.so /usr/lib/libecore_file.so /usr/lib/libembryo.so ../src/lib/.libs/libembrace.a /usr/lib/libesmart_container.so /usr/lib/libesmart_draggies.so /usr/lib/libecore_evas.so /usr/lib/libesmart_trans_x11.so /usr/lib/libImlib2.so /usr/lib/libfreetype.so /usr/lib/libevas.so /usr/lib/libeet.so -lz /usr/lib/libjpeg.so /usr/lib/libfontconfig.so /usr/lib/libexpat.so /usr/lib/libecore.so /usr/lib/libecore_x.so -lXcursor -lXrender -lXp -lXinerama -lXrandr -lXss -lX11 -lXext /usr/lib/libecore_txt.so /usr/lib/libecore_job.so -lm /usr/lib/libltdl.so -ldl ../src/lib/.libs/libembrace.a(embrace.o): In function `open_edb': embrace.c:(.text+0x482): undefined reference to `e_db_flush' embrace.c:(.text+0x48a): undefined reference to `e_db_open_read' ../src/lib/.libs/libembrace.a(embrace.o): In function `embrace_init': embrace.c:(.text+0xb71): undefined reference to `e_db_close' embrace.c:(.text+0xc9c): undefined reference to `e_db_str_get' embrace.c:(.text+0xf19): undefined reference to `e_db_str_get' embrace.c:(.text+0x107c): undefined reference to `e_db_int_get' embrace.c:(.text+0x1129): undefined reference to `e_db_int_get' embrace.c:(.text+0x116b): undefined reference to `e_db_str_get' embrace.c:(.text+0x1281): undefined reference to `e_db_str_get' embrace.c:(.text+0x1300): undefined reference to `e_db_close' collect2: ld returned 1 exit status I found this strange, as it is clearly linked to edb (see ...-L/usr/X11R6/lib /usr/lib/libedb.so /usr/lib/libedje.so...). I don't think that this is a very urgent bug by itself, but it might show, that some other linker arguments are not correct. FYI what --as-needed does: http://www.gentoo.org/proj/en/qa/asneeded.xml By the way, edb was compiled with --as-needed too. The binutils version is 2.16.1, but it fails with 2.16.92, too. As I am a gentoo user, here my emerge --info: Portage 2203-svn (default-linux/x86/2006.0, gcc-3.4.5, glibc-2.3.6-r3, 2.6.16.11 i686) ================================================================= System uname: 2.6.16.11 i686 AMD Duron(tm) processor Gentoo Base System version 1.6.14 dev-lang/python: 2.4.2 dev-python/pycrypto: [Not Present] dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.12 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-tbird -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde//share/config /usr/lib/X11/xkb /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/sare/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/env.d /etc/eselect/compiler /etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=athlon-tbird -fomit-frame-pointer -pipe -fvisibility-inlines-hidden" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 3dnow mmx pic unicode usepackagedmakefiles userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS _______________________________________________________________ SMS schreiben mit WEB.DE FreeMail - einfach, schnell und kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192 |
From: Mike F. <va...@ge...> - 2006-05-17 02:29:48
|
On Saturday 13 May 2006 12:19, Momsen Reincke wrote: > Compiling the CVS-version of embrace fails, if you pass "-Wl,--as-needed" > to the linker (The error is obviously not due to the other optimizations > used in the snippet at the bottom because it compiles fine with LDFLAGS= =3D"" > as well as LDFLAGS=3D"-Wl,-O1 -Wl,--sort-common"). if you're going to rice you need to figure out how to fix these issues=20 yourself ... people generally dont want to hear about this also, did you miss the big warning that said dont bug the e devs when using= =20 Gentoo ? :P > i686-pc-linux-gnu-gcc -I./include -I/usr/include > -I/usr/include/enlightenment -DUSE_E_CONFIG_H -I/usr/include -O2 > -march=3Dathlon-tbird -fomit-frame-pointer -pipe -Wl,-O1 -Wl,--as-needed > -Wl,--sort-common -o embrace main.o > -Wl,--export-dynamic -L/usr/lib -L/usr/X11R6/lib /usr/lib/libedb.so > /usr/lib/libedje.so /usr/lib/libecore_config.so /usr/lib/libecore_ipc.so > /usr/lib/libecore_con.so /usr/lib/libecore_file.so /usr/lib/libembryo.so > ../src/lib/.libs/libembrace.a /usr/lib/libesmart_container.so > /usr/lib/libesmart_draggies.so /usr/lib/libecore_evas.so > /usr/lib/libesmart_trans_x11.so /usr/lib/libImlib2.so > /usr/lib/libfreetype.so /usr/lib/libevas.so /usr/lib/libeet.so -lz > /usr/lib/libjpeg.so > /usr/lib/libfontconfig.so /usr/lib/libexpat.so /usr/lib/libecore.so > /usr/lib/libecore_x.so -lXcursor -lXrender -lXp -lXinerama -lXrandr -lXss > -lX11 -lXext /usr/lib/libecore_txt.so /usr/lib/libecore_job.so -lm > /usr/lib/libltdl.so -ldl > ../src/lib/.libs/libembrace.a(embrace.o): In function `open_edb': it's failing because libembrace.a is specified after libedb.so should be fixed in cvs shortly =2Dmike |