Linking truecrypt x86_64-pc-linux-gnu-g++ -o truecrypt -Wl,--gc-sections -Wl,--hash-style=sysv -Wl,-O1 -Wl,--as-needed Application.o CommandLineInterface.o FavoriteVolume.o LanguageStrings.o StringFormatter.o TextUserInterface.o UserInterface.o UserPreferences.o Xml.o Unix/Main.o Resources.o FatalErrorHandler.o GraphicUserInterface.o VolumeHistory.o Forms/AboutDialog.o Forms/BenchmarkDialog.o Forms/ChangePasswordDialog.o Forms/DeviceSelectionDialog.o Forms/EncryptionOptionsWizardPage.o Forms/EncryptionTestDialog.o Forms/FavoriteVolumesDialog.o Forms/Forms.o Forms/InfoWizardPage.o Forms/KeyfileGeneratorDialog.o Forms/KeyfilesDialog.o Forms/KeyfilesPanel.o Forms/LegalNoticesDialog.o Forms/MainFrame.o Forms/MountOptionsDialog.o Forms/NewSecurityTokenKeyfileDialog.o Forms/PreferencesDialog.o Forms/ProgressWizardPage.o Forms/RandomPoolEnrichmentDialog.o Forms/SecurityTokenKeyfilesDialog.o Forms/SelectDirectoryWizardPage.o Forms/VolumePasswordPanel.o Forms/VolumePropertiesDialog.o Forms/VolumeCreationProgressWizardPage.o Forms/VolumeCreationWizard.o Forms/VolumeFormatOptionsWizardPage.o Forms/VolumeLocationWizardPage.o Forms/VolumePasswordWizardPage.o Forms/VolumeSizeWizardPage.o Forms/WizardFrame.o /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Core/Core.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Driver/Fuse/Driver.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Platform/Platform.a -lfuse -pthread -L/usr/lib64 -pthread -Wl,-O1 -Wl,--as-needed -L/usr/lib64 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu-2.8 /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.1/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.1/../../../../x86_64-pc-linux-gnu/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line /lib64/libdl.so.2: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status Reproducible: Always Portage 2.2.0 (default/linux/amd64/13.0/desktop, gcc-4.8.1, glibc-2.17, 3.10.1-pf x86_64) ================================================================= System uname: Linux-3.10.1-pf-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9450_@_2.66GHz-with-gentoo-2.2 KiB Mem: 4044544 total, 1128296 free KiB Swap: 4095996 total, 4095996 free Timestamp of tree: Wed, 14 Aug 2013 12:00:01 +0000 ld GNU ld (GNU Binutils) 2.23.2 distcc 3.1 x86_64-pc-linux-gnu [disabled] app-shells/bash: 4.2_p45 dev-java/java-config: 2.2.0 dev-lang/python: 2.7.5-r1, 3.2.5-r1, 3.3.2-r1 dev-util/cmake: 2.8.11.1 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.11.8 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.4_p6-r1, 1.9.6-r3, 1.11.6, 1.12.6, 1.13.4, 1.14 sys-devel/binutils: 2.23.2 sys-devel/gcc: 4.6.4, 4.7.3, 4.8.1 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 3.82-r4 sys-kernel/linux-headers: 3.9 (virtual/os-headers) sys-libs/glibc: 2.17 Repositories: gentoo multimedia sunrise steam-overlay kde roslin dupa Installed sets: @system ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe -ggdb" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=native -pipe -ggdb" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--keep-going --quiet-build=n --autounmask-write" FCFLAGS="-O2 -march=native -pipe -ggdb" FEATURES="assume-digests binpkg-logs compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles installsources merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync" FFLAGS="-O2 -march=native -pipe -ggdb" GENTOO_MIRRORS="http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/" LANG="pl_PL.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/multimedia /usr/local/portage/layman/sunrise /usr/local/portage/layman/steam /usr/local/portage/layman/kde /usr/local/portage/layman/roslin /usr/local/portage/moje" USE="X Xaw3d a52 aac aalib acl acpi adobe-cff alsa amd64 amr amrnb amrwb apng async audiofile automount avahi avresample bash-completion berkdb bfq bineditor bluetooth bluray branding bzip2 c++0x cairo cdda cddb cdparanoia cdr chdir clang cli consolekit cracklib crypt css cuda cups curl cxx dbus dirac disk-partition divx djvu dri dts dvd dvdr ebook editor emboss emovix enca encode exchange exif faac faad fam fat ffmpeg fftw firefox firefox3 flac fontconfig fortran g3dvl gd gdbm geoip gif glitz gmedia gnuplot gphoto2 gpm gtk hddtemp iconv id3 id3tag imagemagick inotify iostats ipod jpeg kde kde4 kdehiddenvisibility kipi kompare kpathsea kqemu ladspa lame laptop lastfm latex lcms libass libcaca libnotify libsamplerate lm_sensors lto lzma lzo mad matroska midi mjpeg mmap mmx mmxext mng modules moodbar mp3 mp3tunes mp4 mpeg mplayer mtp mudflap multilib musicbrainz ncurses networkmanager nls nptl nsplugin ntfs nvidia ogg okteta openal opencl opencore-amr opengl openmp optimized-qmake opus pam pango pch pcre pdf plasma png policykit portage ppds private-headers pulseaudio qt3 qt3support qt4 qthelp raster readline realmedia roe scanner schroedinger sdl secure-delete semantic-desktop sensord session shaders slang sndfile solver soundtouch sourceview sparse spell sse sse2 sse3 sse4 sse41 sse4_1 sse4a ssl ssse3 startup-notification steamruntime suid svg swat symlink syslog tcpd theora threads tiff truetype udev udisks unicode upnp upower usb vaapi vamp vcd vdpau vorbis wifi wmf wmp wxwidgets wxwindows x264 xcb xcomposite xml xscreensaver xv xvid xvmc zeroconf zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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="kexi words flow plan sheets stage tables krita karbon braindump author" 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="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
I can confirm that. Tried also some different LDFLAGS mentioned in some forums but didn't help. As good as I remember the compilation didn't work for some weeks now, don`t exactly know if it stopped working by a special kernel version update or some other updates it may depend on. I tried GCC 4.7.3, binutils 2.23.2 and glibc 2.17.
I seem to have a similar issue: Linking truecrypt /usr/lib/gcc/i686-pc-linux-gnu/4.7.3/../../../../i686-pc-linux-gnu/bin/ld: /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): undefined reference to symbol 'dlopen@@GLIBC_2.1' /usr/lib/gcc/i686-pc-linux-gnu/4.7.3/../../../../i686-pc-linux-gnu/bin/ld: note: 'dlopen@@GLIBC_2.1' is defined in DSO /lib/libdl.so.2 so try adding it to the linker command line /lib/libdl.so.2: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status make[1]: *** [truecrypt] Error 1 make: *** [all] Error 2
I can install truecrypt using LDFLAGS="-ldl" emerge truecrypt
yeah, LDFLAGS="-ldl" emerge truecrypt works. Adding -ldl into the LDFLAGS in make.conf doesn't work directly, you also have to ensure to remove "--as-needed". So I can now emerge truecrypt with my custom LDFLAGS="-Wl,--hash-style=gnu,--sort-common,-ldl" But what exactly is -ldl doing? And what's the next step? Is someone modifying the ebuild to add -ldl and remove --as-needed only for truecrypt?
It builds fine for me with --as-needed: x86_64-pc-linux-gnu-g++ -o truecrypt -Wl,--gc-sections -Wl,--hash-style=sysv -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu Application.o CommandLineInterface.o FavoriteVolume.o LanguageStrings.o StringFormatter.o TextUserInterface.o UserInterface.o UserPreferences.o Xml.o Unix/Main.o Resources.o FatalErrorHandler.o GraphicUserInterface.o VolumeHistory.o Forms/AboutDialog.o Forms/BenchmarkDialog.o Forms/ChangePasswordDialog.o Forms/DeviceSelectionDialog.o Forms/EncryptionOptionsWizardPage.o Forms/EncryptionTestDialog.o Forms/FavoriteVolumesDialog.o Forms/Forms.o Forms/InfoWizardPage.o Forms/KeyfileGeneratorDialog.o Forms/KeyfilesDialog.o Forms/KeyfilesPanel.o Forms/LegalNoticesDialog.o Forms/MainFrame.o Forms/MountOptionsDialog.o Forms/NewSecurityTokenKeyfileDialog.o Forms/PreferencesDialog.o Forms/ProgressWizardPage.o Forms/RandomPoolEnrichmentDialog.o Forms/SecurityTokenKeyfilesDialog.o Forms/SelectDirectoryWizardPage.o Forms/VolumePasswordPanel.o Forms/VolumePropertiesDialog.o Forms/VolumeCreationProgressWizardPage.o Forms/VolumeCreationWizard.o Forms/VolumeFormatOptionsWizardPage.o Forms/VolumeLocationWizardPage.o Forms/VolumePasswordWizardPage.o Forms/VolumeSizeWizardPage.o Forms/WizardFrame.o /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Core/Core.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Driver/Fuse/Driver.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Platform/Platform.a -lfuse -pthread -L/usr/lib64 -pthread -Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -L/usr/lib64 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu-2.8
Works to me as well: x86_64-pc-linux-gnu-g++ -o truecrypt -Wl,--gc-sections -Wl,--hash-style=sysv -Wl,-O1 -Wl,--as-needed Application.o CommandLineInterface.o FavoriteVolume.o LanguageStrings.o StringFormatter.o TextUserInterface.o UserInterface.o UserPreferences.o Xml.o Unix/Main.o Resources.o FatalErrorHandler.o GraphicUserInterface.o VolumeHistory.o Forms/AboutDialog.o Forms/BenchmarkDialog.o Forms/ChangePasswordDialog.o Forms/DeviceSelectionDialog.o Forms/EncryptionOptionsWizardPage.o Forms/EncryptionTestDialog.o Forms/FavoriteVolumesDialog.o Forms/Forms.o Forms/InfoWizardPage.o Forms/KeyfileGeneratorDialog.o Forms/KeyfilesDialog.o Forms/KeyfilesPanel.o Forms/LegalNoticesDialog.o Forms/MainFrame.o Forms/MountOptionsDialog.o Forms/NewSecurityTokenKeyfileDialog.o Forms/PreferencesDialog.o Forms/ProgressWizardPage.o Forms/RandomPoolEnrichmentDialog.o Forms/SecurityTokenKeyfilesDialog.o Forms/SelectDirectoryWizardPage.o Forms/VolumePasswordPanel.o Forms/VolumePropertiesDialog.o Forms/VolumeCreationProgressWizardPage.o Forms/VolumeCreationWizard.o Forms/VolumeFormatOptionsWizardPage.o Forms/VolumeLocationWizardPage.o Forms/VolumePasswordWizardPage.o Forms/VolumeSizeWizardPage.o Forms/WizardFrame.o /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Core/Core.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Driver/Fuse/Driver.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Platform/Platform.a -lfuse -pthread -L/usr/lib64 -pthread -Wl,-O1 -Wl,--as-needed -L/usr/lib64 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu-2.8 As there is no special ldscript and no special ldflag, I can only guess that at your system some dependency is linked against older dl.so, some leftover after upgrading system package.
i have also problem to comiple this package: -D TC_ARCH_X64 -DTC_UNIX -DTC_LINUX -fdata-sections -ffunction-sections -Wall -Wno-unused-parameter -march=corei7 -O2 -pipe -DCKR_NEW_PIN_MODE=0x000001B0 -DCKR_NEXT_OTP=0x000001B1 -I/var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Main -I/usr/lib64/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -pthread -c Forms/WizardFrame.cpp -o Forms/WizardFrame.o Linking truecrypt x86_64-pc-linux-gnu-g++ -o truecrypt -Wl,--gc-sections -Wl,--hash-style=sysv -Wl,-O1 -Wl,--as-needed Application.o CommandLineInterface.o FavoriteVolume.o LanguageStrings.o StringFormatter.o TextUserInterface.o UserInterface.o UserPreferences.o Xml.o Unix/Main.o Resources.o FatalErrorHandler.o GraphicUserInterface.o VolumeHistory.o Forms/AboutDialog.o Forms/BenchmarkDialog.o Forms/ChangePasswordDialog.o Forms/DeviceSelectionDialog.o Forms/EncryptionOptionsWizardPage.o Forms/EncryptionTestDialog.o Forms/FavoriteVolumesDialog.o Forms/Forms.o Forms/InfoWizardPage.o Forms/KeyfileGeneratorDialog.o Forms/KeyfilesDialog.o Forms/KeyfilesPanel.o Forms/LegalNoticesDialog.o Forms/MainFrame.o Forms/MountOptionsDialog.o Forms/NewSecurityTokenKeyfileDialog.o Forms/PreferencesDialog.o Forms/ProgressWizardPage.o Forms/RandomPoolEnrichmentDialog.o Forms/SecurityTokenKeyfilesDialog.o Forms/SelectDirectoryWizardPage.o Forms/VolumePasswordPanel.o Forms/VolumePropertiesDialog.o Forms/VolumeCreationProgressWizardPage.o Forms/VolumeCreationWizard.o Forms/VolumeFormatOptionsWizardPage.o Forms/VolumeLocationWizardPage.o Forms/VolumePasswordWizardPage.o Forms/VolumeSizeWizardPage.o Forms/WizardFrame.o /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Core/Core.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Driver/Fuse/Driver.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Platform/Platform.a -lfuse -pthread -L/usr/lib64 -pthread -Wl,-O1 -Wl,--as-needed -L/usr/lib64 -lwx_gtk2u_adv-2.8 -lwx_gtk2u_core-2.8 -lwx_baseu-2.8 /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Volume/Volume.a(SecurityToken.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.3/../../../../x86_64-pc-linux-gnu/bin/ld: note: 'dlclose@@GLIBC_2.2.5' is defined in DSO /lib64/libdl.so.2 so try adding it to the linker command line /lib64/libdl.so.2: could not read symbols: Invalid operation collect2: error: ld returned 1 exit status make[1]: *** [truecrypt] Error 1 make[1]: Leaving directory `/var/tmp/portage/app-crypt/truecrypt-7.1a/work/truecrypt-7.1a-source/Main' make: *** [all] Error 2 * ERROR: app-crypt/truecrypt-7.1a::gentoo failed (compile phase): * emake failed * * If you need support, post the output of `emerge --info '=app-crypt/truecrypt-7.1a::gentoo'`, * the complete build log and the output of `emerge -pqv '=app-crypt/truecrypt-7. cant not be missing linking? revdep-rebuild is emty
I can't replicate this at all, but maybe it is either -Wl,--gc-sections or -Wl,--hash-style=sysv , can you try disabling individually and seeing what happens?
I recompiled my whole @world now and still can't emerge truecrypt with --as-needed. I always depclean and revdep-rebuild after @world updates so I guess there is nothing wrong with my system. Additional this emerge truecrypt error happens on all my Gentoo systems (4 x x64, 2 x x86) on nearly the same package versions. All use GCC 4.7.3, binutils 2.23.2 and glibc 2.17.
*** Bug 486130 has been marked as a duplicate of this bug. ***
I also had a problem after I did a world rebuild. Adding LDFLAGS="-Wl,--as-needed" to make.conf did not work but LDFLAGS="-Wl,-ldl" emerge... did.
Created attachment 364788 [details, diff] Add -ldl to default LFLAGS
I can confirm the bug when rebuilding the liveCD through catalyst. GCC 4.8.2, glibc 2.17, binutils 2.23.2. I attached a simple patch to be used with the ebuild, that adds -ldl to the default Makefile LFLAGS.
Added dl, thanks!