Date: Mon, 08 Dec 2008 23:01:45 +0100 From: Bengt Ahlgren <bengta@sics.se> To: freebsd-ports@freebsd.org Subject: print/acroread8: LD_LIBRARY_PATH breaks helper programs Message-ID: <uh7d4g2tjg6.fsf@P142.sics.se>
next in thread | raw e-mail | index | archive | help
Hi! When testing acroread8 (on 7.1-PRE) I got the following error when trying to print using KDE's kprinter on i386: The following error occurred while printing... '/libexec/ld-elf.so.1: /usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/lib/libstdc++.so.6: unsupported file layout' and on amd64: The following error occurred while printing... '/libexec/ld-elf.so.1: Shared object "libm.so.6" not found, required by "libstdc++.so.6"' The reason is that the acroread launch script sets LD_LIBRARY_PATH to: LD_LIBRARY_PATH=/usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/lib:/usr/local/Adobe/Reader8/ENU/Adobe/Reader8/Reader/intellinux/sidecars:/..//usr/local/lib/linux-nvu which makes (some) helper programs fail to link its shared libs if it happens to pick up a (Linux) library from the above. libstdc++.so.6 is one of them. The problem is easily worked around for the print program - you can do "env -u LD_LIBRARY_PATH kprinter" for instance directly in the print dialogue. But that does not work for the browser executable set in the "edit/preferences/internet" dialogue. So if you want to be able to launch a browser from acroread, you need a wrapper script. Question: is there a proper fix for these problems??? I see that the Linux dynamic linker (/usr/compat/linux/lib/ld-linux.so.2) has a flag: --library-path PATH use given PATH instead of content of the environment variable LD_LIBRARY_PATH so I tried to patch the acroread launch script in /usr/local/Adobe/Reader8/ENU/Adobe/Reader8/bin with: --- acroread.orig 2008-10-08 06:28:27.000000000 +0200 +++ acroread 2008-12-08 22:59:46.000000000 +0100 @@ -16,7 +16,9 @@ LaunchBinary() { if [ "`uname -s`" = "Linux" ] && [ ! -x /lib/ld-lsb.so.3 ]; then - exec /lib/ld-linux.so.2 ${1+"$@"} + TEMP_LIB_PATH="$LD_LIBRARY_PATH" + unset LD_LIBRARY_PATH + exec /lib/ld-linux.so.2 --library-path "$TEMP_LIB_PATH" ${1+"$@"} else exec ${1+"$@"} fi which indeed works! Bengt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?uh7d4g2tjg6.fsf>