Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 485742 - app-text/acroread-9.5.5 - /opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Summary: app-text/acroread-9.5.5 - /opt/Adobe/Reader9/Reader/intellinux/bin/acroread: ...
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-23 14:00 UTC by Martin Mokrejš
Modified: 2013-09-24 17:22 UTC (History)
1 user (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 Martin Mokrejš 2013-09-23 14:00:06 UTC
I recently installed a pure 64-bit amd64 machine. However, acroread seems to require 32-multilib.

$ acroread
/opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
$


emerge adviced to install www-plugins/nspluginwrapper and I can confirm that through firefox browser I can open PDF files (provided the same app-text/acroread-9.5.5 is used as the underlying tool).


I tried to include manually the misisng library in the path but that fails:

$ LD_LIBRARY_PATH=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.7.3 acroread somefile.pdf 
/opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libstdc++.so.6: wrong ELF class: ELFCLASS64
$



# emerge --info
Portage 2.1.12.2 (default/linux/amd64/13.0/no-multilib, gcc-4.7.3, glibc-2.15-r3, 3.10.10-default-pciehp x86_64)
=================================================================
System uname: Linux-3.10.10-default-pciehp-x86_64-Intel-R-_Core-TM-_i7-2640M_CPU_@_2.80GHz-with-gentoo-2.2
KiB Mem:    16368832 total,    165780 free
KiB Swap:    4998972 total,   4291712 free
Timestamp of tree: Mon, 23 Sep 2013 13:00:02 +0000
ld GNU ld (GNU Binutils) 2.23.2
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r2, 3.2.5-r2
dev-util/cmake:           2.8.11.1
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.12.6
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.6.4, 4.7.3
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.7 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo gentoo-haskell science x-portage x-layman
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 sun-bcla-java-vm Oracle-BCLA-JavaSE IBM-J1.6 skype-eula Nero-EULA-US AdobeFlash-10.3 skype-4.0.0.7-copyright AdobeFlash-11.x"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -maes -mpclmul -mpopcnt -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/spool/torque"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.4/ext-active/ /etc/php/apache2-php5.5/ext-active/ /etc/php/cgi-php5.4/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.4/ext-active/ /etc/php/cli-php5.5/ext-active/ /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 -pipe -maes -mpclmul -mpopcnt -march=native"
DISTDIR="/mnt/1TB/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news nostrip parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j3"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/mnt/1TB/var/tmp"
PORTDIR="/mnt/1TB/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/haskell /home/mmokrejs/proj/sci /usr/local/portage /var/lib/layman"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X acl acpi alsa amd64 amr apache apache2 avx berkdb bindist bluetooth bzip2 cairo cgi cli cracklib crypt cryptlib cups cxx dbus device-mapper dhcp dri emboss encode fax ffmpeg flac fontconfig fortran gd gdbm gimp gnutls gpm gtk gudev hal hpijs hwdb iconv id3tag innodb java jce jpeg jpg keymap ladspa lapack laptop lcms libnotify lm_sensors mad mmx modules mpi mpich2 mysql ncurses nfs nls nptl nptlonly nsplugin ntfsprogs ocr ogg opengl openmp pam parport pcre pdf perl php png ppds pppd python readline resolvconf scanner server session sndfile sqlite sse sse2 sse3 sse4_1 sse4_2 ssl ssse3 suexec svg syslog tcpd threads tiff tk truetype udev unicode usb vim-syntax wavpack wifi x11 xml xorg 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="authz_host cgi cgid deflate dir env filter include info mime mime_magic remoteip setenvif status userdir vhost_alias rewrite" 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="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en cs cz" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-4 php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="vesa vmware fbdev intel i915" 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, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Ben Kohler gentoo-dev 2013-09-24 13:21:59 UTC
app-text/acroread is masked on no-multilib profiles, how did you manage to get it installed?
Comment 2 Martin Mokrejš 2013-09-24 16:10:12 UTC
Well, I just used --autounmask-write to allow emerge to install it.

Damn, I just felt into the trap just because I followed

http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=1&chap=6

notably, "If you want to have a pure 64-bit environment, with no 32-bit applications or libraries, you should use a non-multilib profile". Doh, there should be a bold section warning users that lots of stuff will anyway force them sooner or later on to install:

# grep x86 /var/log/emerge.log | grep AUTOCLEAN | awk '{print $4}' | sort| uniq
app-emulation/emul-linux-x86-baselibs:0
app-emulation/emul-linux-x86-db:0
app-emulation/emul-linux-x86-gtklibs:0
app-emulation/emul-linux-x86-medialibs:0
app-emulation/emul-linux-x86-opengl:0
app-emulation/emul-linux-x86-qtlibs:0
app-emulation/emul-linux-x86-soundlibs:0
app-emulation/emul-linux-x86-xlibs:0
#

Why acroread isn't happy with them? If it can't, you should not recommend non-multilib almost ever to a user. xpdf is gone from tree, okular pulls in awfull KDE dependencies which I am not going to accept anymore, and there is probably nothing else left as a usable PDF reader. What am I missing?


# eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/13.0
  [2]   default/linux/amd64/13.0/selinux
  [3]   default/linux/amd64/13.0/desktop
  [4]   default/linux/amd64/13.0/desktop/gnome
  [5]   default/linux/amd64/13.0/desktop/kde
  [6]   default/linux/amd64/13.0/developer
  [7]   default/linux/amd64/13.0/no-multilib *
  [8]   default/linux/amd64/13.0/x32
  [9]   hardened/linux/amd64
  [10]  hardened/linux/amd64/selinux
  [11]  hardened/linux/amd64/no-multilib
  [12]  hardened/linux/amd64/no-multilib/selinux
  [13]  hardened/linux/amd64/x32
  [14]  hardened/linux/uclibc/amd64
#
Comment 3 Ben Kohler gentoo-dev 2013-09-24 16:14:18 UTC
I think the only thing missing is that when you read the paragraph about "with no 32-bit applications", you didn't realize how many 32-bit-only applications there actually are.  And acroread is one of them.  From what I see with new users, 95% of them who pick no-multilib end up regretting it, so I do agree that a scarier warning would be helpful.

For some more minimal readers, try zathura (with zathura-pdf-popper or zathura-pdf-mupdf) or mupdf.
Comment 4 Martin Mokrejš 2013-09-24 17:14:07 UTC
But, first of alll I thought that linux kernel now has an option to execute 32-bit binaries staright away. Second, why couldn't there be just a 32-bit copy of the libc++.so in the app-emulation packages?


I am running 3.10.10 kernel with:

CONFIG_64BIT=y
CONFIG_IA32_EMULATION=y
CONFIG_X86_X32=y


The help in "make menuconfig" says I will need >=binutils-2.22 with elf32_x86_64 enabled. Maybe that is the problem with my system?


# binutils-config 
Usage: binutils-config [options] [binutils profile]

General Options:
  -c, --get-current-profile  Print current profile
  -l, --list-profiles        Print a list of available profiles
  -u, --uninstall            Remove all signs of specified target
  -d, --debug                Execute with debug output

General Cruft:
  --linker <linker>          Switch to specified linker (if supported)

Arch Specific Cruft:
  --amd64                    Install extra amd64 links (x86_64)
  --arm                      Install extra arm links (arm/armeb)
  --mips                     Install extra mips links (mips/mipsel)
  --x86                      Install extra x86 links (i[3-6]86)

Profile names are of the form:  <CTARGET>-<binutils version>
For example:                    i686-pc-linux-gnu-2.15.92.0.2

For more info, please see binutils-config(8).
# binutils-config -c
x86_64-pc-linux-gnu-2.23.2
# 

So should there be somewhere "--amd64" appended?
Comment 5 Ben Kohler gentoo-dev 2013-09-24 17:22:31 UTC
(In reply to Martin Mokrejš from comment #4)
> But, first of alll I thought that linux kernel now has an option to execute
> 32-bit binaries staright away. Second, why couldn't there be just a 32-bit
> copy of the libc++.so in the app-emulation packages?

The kernel can run the 32bit binaries, but the supporting shared libs don't exist since your toolchain pieces were built without multilib functionality.  Specifically here, the 32bit libstdc++ is provided by a multilib-enabled gcc.

You *may* still have gcc-4.6.3 built with multilib available, you can try switching to that via gcc-config.  But I suspect you may be past the point of no return (to multilib) here.

There's no bug here, please try one of our support venues like forums or IRC if you need further help with this no-multilib situation.