Closed
Bug 8569
Opened 27 years ago
Closed 27 years ago
"make" dies because of shared library problem under Sol2.6
Categories
(SeaMonkey :: Build Config, defect, P3)
Tracking
(Not tracked)
RESOLVED
FIXED
M8
People
(Reporter: tar, Assigned: briano)
Details
I pulled down mozilla-5.0-M6.tar.gz and updated it from CVS as instructed.
In order to get configure to complete properly I have to invoke it as:
env LD_LIBRARY_PATH="/usr/local/lib" ./configure
Otherwise, it can't link gtk correctly (it'd be swell if configure "knew"
about adding -L$path_to_libgtk_and_friends under Solaris for its tests).
However, when I try to make:
gmake
it compiles a bunch of stuff but dies here:
Creating _xpidlgen
../../dist/./bin/xpidl -m header -w -I ../../dist/idl -I. -o
_xpidlgen/nsrootidl nsrootidl.idl
ld.so.1: ../../dist/./bin/xpidl: fatal: libglib-1.2.so.0: open failed: No such
file or directory
gmake[2]: *** [_xpidlgen/nsrootidl.h] Killed
gmake[2]: Leaving directory `/usr/local/src/mozilla/xpcom/idl'
Solaris needs to bring back ld.so.cache.
Trying again:
env LD_LIBRARY_PATH="/usr/local/lib" LD_RUN_PATH="/usr/local/lib" gmake
it dies here:
rm -f jsautocfg.h
./jscpucfg > jsautocfg.h
ld.so.1: ./jscpucfg: fatal: libplds3.so: open failed: No such file or
directory
Killed
gmake[2]: *** [jsautocfg.h] Error 137
gmake[2]: Leaving directory `/usr/local/src/mozilla/js/src'
tar@fubar(1063)% ldd js/src/jscpucfg
libplds3.so => (file not found)
libplc3.so => (file not found)
libnspr3.so => (file not found)
libpthread.so.1 => /usr/lib/libpthread.so.1
...
These shared libraries are buried under another part of the mozilla tree in
./dist/lib. I don't understand how this would work for anyone: the link
command for jscpucfg doesn't specify any -R options:
gcc -o jscpucfg.o -c -Wp,-MD,.deps/jscpucfg.pp -include ../../config-defs.h
-g -fPIC -DDEBUG -UNDEBUG -DDEBUG_tar -DTRACING -DOSTYPE=\"SunOS5\"
-DSingleSignon -DCookieManagement -DClientWallet -DJS_USE_SAFE_ARENA
-I../../dist/./include -I../../dist/include -I../../include -I.
-I/usr/openwin/include jscpucfg.c
gcc -o jscpucfg jscpucfg.o -lplds3 -lplc3 -lnspr3 -lpthread -lm -lposix4 -ldl
-lnsl -lsocket -L../../dist/./bin -L../../dist/./lib -ll -lw -lposix4 -lintl
-lelf -lnsl -lsocket -lresolv -ldl -lm
so the link finds ./dist/lib but doesn't encode that path in the jscpucfg
executable, so the shared libraries in that directory won't be found at
dynamic link time.
This works around it:
env LD_LIBRARY_PATH="/usr/local/lib:`pwd`/dist/lib"
LD_RUN_PATH="/usr/local/lib" gmake
Also, when the invocation of jsspucfg dies on invocation it creates jsautocfg.h
because of the shell redirection, but that file is left empty. Subsequent
makes don't complete properly because as far as make is concerned the
jsautocfg.h file is up to date. Can the Makefile be written so this auto
generated file is removed if the jscpucfg command fails?
| Assignee | ||
Updated•27 years ago
|
Status: NEW → ASSIGNED
| Assignee | ||
Comment 1•27 years ago
|
||
I suspect you'll have fewer problems with M7 or the current CVS tree,
but you'll probably still have to set LD_LIBRARY_PATH in any case (I
do this for my Solaris 2.6 Tinderbox builds. If you build NSPR separately,
then you have no choice but to set LD_LIBRARY_PATH to point to it. If
you let configure decide to build nspr for you, then you shouldn't need
to do anything special.
Your suggestion wrt jsautocfg.h is a good one. I could probably have it
build a temporary file (jsautocfg.tmp?), and if successful mv it to jsautocfg.h.
I'll look into it. (Feel free to test this idea for me... ;-)
| Assignee | ||
Updated•27 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 27 years ago
Resolution: --- → FIXED
Target Milestone: M8
| Assignee | ||
Comment 2•27 years ago
|
||
I've checked in a change to js/src/Makefile.in to fix the problem you
described wrt zero-length jsautocfg.h. The fix is in rev 3.27. Please
give it a try and let me know if it does what you wanted.
The rest of this bug requires that LD_LIBRARY_PATH be set. There's
nothing I can do about that.
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•