I have Solaris-10 zone, where I can open firefox in GUI via MobaXterm with root user, but when I try to open it with non root user, it fails with below error
$ which firefox
/usr/bin/firefox
$ firefox
ld.so.1: firefox-bin: fatal: relocation error: file /usr/lib/firefox/components/libdocshell.so: symbol PR_GetPhysicalMemorySize: referenced symbol not found
Killed
$ ls -l /lib/sparcv9/ld.so.1 /lib/ld.so.1 /usr/lib/ld.so.1 /usr/lib/sparcv9/ld.so.1 /etc/lib/ld.so.1
lrwxrwxrwx 1 root root 17 Mar 1 2013 /etc/lib/ld.so.1 -> ../../lib/ld.so.1
-rwxr-xr-x 1 root bin 281248 Jun 14 2011 /lib/ld.so.1
-rwxr-xr-x 1 root bin 301600 Jun 14 2011 /lib/sparcv9/ld.so.1
lrwxrwxrwx 1 root root 17 Feb 7 2009 /usr/lib/ld.so.1 -> ../../lib/ld.so.1
lrwxrwxrwx 1 root root 28 Feb 7 2009 /usr/lib/sparcv9/ld.so.1 -> ../../../lib/sparcv9/ld.so.1
$
Can somebody point me, what can be its fix ?
From your current environment run the shell command
ldd /usr/lib/firefox/components/libdocshell.so
and compare with
env -i ldd /usr/lib/firefox/components/libdocshell.so
Is there a difference?
There is no difference, when I do it from root. But there are differences with no root user. here is from non-root user
$ ldd /usr/lib/firefox/components/libdocshell.so
libCrun.so.1 => /usr/lib/libCrun.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libmozjs.so => /usr/lib/firefox/components/../libmozjs.so
libxpcom_core.so => /usr/lib/firefox/components/../libxpcom_core.so
libplc4.so => /t3/apps/documentum2/product/6.6/bin/libplc4.so
libplc4.so (NSPR_4.0) => (version not found)
libnspr4.so => /t3/apps/documentum2/product/6.6/bin/libnspr4.so
libnspr4.so (NSPR_4.6) => (version not found)
libm.so.2 => /lib/libm.so.2
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
libc.so.1 => /lib/libc.so.1
libnspr4.so (NSPR_4.0) => (version not found)
libplds4.so => /t3/apps/documentum2/product/6.6/bin/libplds4.so
libplds4.so (NSPR_4.0) => (version not found)
libplc4.so (NSPR_4.0) => (version not found)
libnspr4.so (NSPR_4.1) => (version not found)
libpthread.so.1 => /usr/lib/firefox/../libpthread.so.1
libdl.so.1 => /usr/lib/firefox/../libdl.so.1
libthread.so.1 => /lib/libthread.so.1
libposix4.so.1 => /lib/libposix4.so.1
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libaio.so.1 => /lib/libaio.so.1
libmd.so.1 => /lib/libmd.so.1
libmp.so.2 => /lib/libmp.so.2
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
/platform/SUNW,Netra-T12/lib/libc_psr.so.1
/platform/SUNW,Netra-T12/lib/libmd_psr.so.1
$ env -i ldd /usr/lib/firefox/components/libdocshell.so
libCrun.so.1 => /usr/lib/libCrun.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libmozjs.so => /usr/lib/firefox/components/../libmozjs.so
libxpcom_core.so => /usr/lib/firefox/components/../libxpcom_core.so
libplc4.so => /usr/lib/mps/libplc4.so
libnspr4.so => /usr/lib/mps/libnspr4.so
libm.so.2 => /lib/libm.so.2
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
libc.so.1 => /lib/libc.so.1
libplds4.so => /usr/lib/mps/libplds4.so
libpthread.so.1 => /usr/lib/firefox/../libpthread.so.1
libdl.so.1 => /usr/lib/firefox/../libdl.so.1
librt.so.1 => /lib/librt.so.1
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libaio.so.1 => /lib/libaio.so.1
libmd.so.1 => /lib/libmd.so.1
libmp.so.2 => /lib/libmp.so.2
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
/usr/lib/mps/cpu/sparcv8plus/libnspr_flt4.so
/platform/SUNW,Netra-T12/lib/libc_psr.so.1
/platform/SUNW,Netra-T12/lib/libmd_psr.so.1
$
$ ldd /usr/lib/firefox/components/libdocshell.so >> /tmp/121212
$ env -i ldd /usr/lib/firefox/components/libdocshell.so >> /tmp/454545
$ diff /tmp/121212 /tmp/454545
5,8c5,6
< libplc4.so => /t3/apps/documentum2/product/6.6/bin/libplc4.so
< libplc4.so (NSPR_4.0) => (version not found)
< libnspr4.so => /t3/apps/documentum2/product/6.6/bin/libnspr4.so
< libnspr4.so (NSPR_4.6) => (version not found)
---
> libplc4.so => /usr/lib/mps/libplc4.so
> libnspr4.so => /usr/lib/mps/libnspr4.so
13,17c11
< libnspr4.so (NSPR_4.0) => (version not found)
< libplds4.so => /t3/apps/documentum2/product/6.6/bin/libplds4.so
< libplds4.so (NSPR_4.0) => (version not found)
< libplc4.so (NSPR_4.0) => (version not found)
< libnspr4.so (NSPR_4.1) => (version not found)
---
> libplds4.so => /usr/lib/mps/libplds4.so
20,21c14
< libthread.so.1 => /lib/libthread.so.1
< libposix4.so.1 => /lib/libposix4.so.1
---
> librt.so.1 => /lib/librt.so.1
31a25
> /usr/lib/mps/cpu/sparcv8plus/libnspr_flt4.so
$
You have an incompatible component /t3/apps/documentum2/product/6.6/bin/libplds4.so in your environment variable LD_LIBRARY_PATH.
Verify with
echo $LD_LIBRARY_PATH
Try
unset LD_LIBRARY_PATH
firefox
Yes, I can open firefox after unsetting it.
/t3/apps/documentum$ firefox
ld.so.1: firefox-bin: fatal: relocation error: file /usr/lib/firefox/components/libdocshell.so: symbol PR_GetPhysicalMemorySize: referenced symbol not found
Killed
/t3/apps/documentum$ echo $LD_LIBRARY_PATH
/usr/lib:/t3/apps/wl/8.1.6/jdk142_11/lib:/t3/apps/documentum/product/5.3/bin:/t3/apps/documentum/fulltext/verity271/_ssol26/bin:/t3/oracle/product/9.2.0/lib:/t3/data/documentum/share/dfc:/t3/apps/wl/8.1.6/jdk142_11/jre/lib:/t3/apps/wl/8.1.6/jdk142_11/jre/lib/sparc/client
/t3/apps/documentum$ unset LD_LIBRARY_PATH
/t3/apps/documentum$ echo $LD_LIBRARY_PATH
/t3/apps/documentum$ firefox
But these env variables are needed for their application. Do we know, what can be done to fix this ?
Fix your application more close to the application - so it does not impact other applications.
Maybe your /path/to/application is a start script?
Then insert at the beginning
export LD_LIBRARY_PATH; LD_LIBRARY_PATH=...
or just unset it specifically for firefox:
LD_LIBRARY_PATH= firefox