Closed
Bug 299293
Opened 20 years ago
Closed 20 years ago
build failure in mozilla/security/nss/lib/ssl (_FC_GetFunctionList referenced from libnss3 expected to be defined in libsoftokn3.dylib) [Mac X11]
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
INVALID
People
(Reporter: niederstrasser, Unassigned)
Details
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.8) Gecko/20050511 Firefox/1.0.4
Building from the trunk stopped working about 2 (3?) weeks ago in
mozilla/security/nss/lib/ssl. Using a trunk tree from before then, everything
compiled fine. I have pasted the error message below.
Things to note: I'm doing this for OS X under X11/gtk2. I have built 0.10
through 1.0.4 for the Fink project successfully using the same method, and I had
a trunk build working until about 2 or 3 weeks ago.
During ./configure, I have /Users/nieder set as my prefix. When things were
working, the libraries ended up under /Users/nieder/lib/firefox, but the error
now seems to happen in part because it is expecting to find the library directly
in /Users/nieder.
I'm using Tiger.1 w/ Xcode 2.1. gcc is set to 4.0, but I get the same error
when using 3.3.
Reproducible: Always
Steps to Reproduce:
Actual Results:
The error message:
******************
rm -f Darwin8.1.0_OPT.OBJ/libssl.a
ar cr Darwin8.1.0_OPT.OBJ/libssl.a Darwin8.1.0_OPT.OBJ/emulate.o
Darwin8.1.0_OPT.OBJ/prelib.o Darwin8.1.0_OPT.OBJ/ssl3con.o
Darwin8.1.0_OPT.OBJ/ssl3gthr.o Darwin8.1.0_OPT.OBJ/sslauth.o
Darwin8.1.0_OPT.OBJ/sslcon.o Darwin8.1.0_OPT.OBJ/ssldef.o
Darwin8.1.0_OPT.OBJ/sslenum.o Darwin8.1.0_OPT.OBJ/sslerr.o
Darwin8.1.0_OPT.OBJ/sslgathr.o Darwin8.1.0_OPT.OBJ/sslmutex.o
Darwin8.1.0_OPT.OBJ/sslnonce.o Darwin8.1.0_OPT.OBJ/sslreveal.o
Darwin8.1.0_OPT.OBJ/sslsecur.o Darwin8.1.0_OPT.OBJ/sslsnce.o
Darwin8.1.0_OPT.OBJ/sslsock.o Darwin8.1.0_OPT.OBJ/ssltrace.o
Darwin8.1.0_OPT.OBJ/sslver.o Darwin8.1.0_OPT.OBJ/authcert.o
Darwin8.1.0_OPT.OBJ/cmpcert.o Darwin8.1.0_OPT.OBJ/nsskea.o
Darwin8.1.0_OPT.OBJ/sslinfo.o Darwin8.1.0_OPT.OBJ/unix_err.o
ranlib: file: Darwin8.1.0_OPT.OBJ/libssl.a(ssltrace.o) has no symbols
ranlib Darwin8.1.0_OPT.OBJ/libssl.a
ranlib: file: Darwin8.1.0_OPT.OBJ/libssl.a(ssltrace.o) has no symbols
grep -v ';+' ssl.def | grep -v ';-' | sed -e 's; DATA ;;' -e 's,;;,,' -e
's,;.*,,' -e 's,^,_,' > Darwin8.1.0_OPT.OBJ/ssl.def
rm -f Darwin8.1.0_OPT.OBJ/libssl3.dylib
gcc -arch ppc -dynamiclib -compatibility_version 1 -current_version 1
-install_name /Users/nieder/libssl3.dylib -headerpad_max_install_names -o
Darwin8.1.0_OPT.OBJ/libssl3.dylib Darwin8.1.0_OPT.OBJ/emulate.o
Darwin8.1.0_OPT.OBJ/prelib.o Darwin8.1.0_OPT.OBJ/ssl3con.o
Darwin8.1.0_OPT.OBJ/ssl3gthr.o Darwin8.1.0_OPT.OBJ/sslauth.o
Darwin8.1.0_OPT.OBJ/sslcon.o Darwin8.1.0_OPT.OBJ/ssldef.o
Darwin8.1.0_OPT.OBJ/sslenum.o Darwin8.1.0_OPT.OBJ/sslerr.o
Darwin8.1.0_OPT.OBJ/sslgathr.o Darwin8.1.0_OPT.OBJ/sslmutex.o
Darwin8.1.0_OPT.OBJ/sslnonce.o Darwin8.1.0_OPT.OBJ/sslreveal.o
Darwin8.1.0_OPT.OBJ/sslsecur.o Darwin8.1.0_OPT.OBJ/sslsnce.o
Darwin8.1.0_OPT.OBJ/sslsock.o Darwin8.1.0_OPT.OBJ/ssltrace.o
Darwin8.1.0_OPT.OBJ/sslver.o Darwin8.1.0_OPT.OBJ/authcert.o
Darwin8.1.0_OPT.OBJ/cmpcert.o Darwin8.1.0_OPT.OBJ/nsskea.o
Darwin8.1.0_OPT.OBJ/sslinfo.o Darwin8.1.0_OPT.OBJ/unix_err.o
-L/Users/nieder/src/mozilla/dist/lib/ -lnss3 -lplc4 -lplds4 -lnspr4 -dylib_file
/Users/nieder/lib/firefox/libsoftokn3.dylib:/Users/nieder/src/mozilla/dist/lib/libsoftokn3.dylib
ld: warning can't open dynamic library: /Users/nieder/libsoftokn3.dylib
(checking for undefined symbols may be affected) (No such file or directory,
errno = 2)
ld: Undefined symbols:
_FC_GetFunctionList referenced from libnss3 expected to be defined in
/Users/nieder/libsoftokn3.dylib
_NSC_GetFunctionList referenced from libnss3 expected to be defined in
/Users/nieder/libsoftokn3.dylib
_NSC_ModuleDBFunc referenced from libnss3 expected to be defined in
/Users/nieder/libsoftokn3.dylib
/usr/bin/libtool: internal link edit command failed
make[4]: *** [Darwin8.1.0_OPT.OBJ/libssl3.dylib] Error 1
make[4]: Leaving directory `/Users/nieder/src/mozilla/security/nss/lib/ssl'
Comment 1•20 years ago
|
||
Something's not right. (Obviously.)
I see no mention of @executable_path anywhere. The standard make machinery for
nss on the Mac puts @executable_path in. Do you have any mention of
@executable_path in security/coreconf/Darwin.mk?
Comment 2•20 years ago
|
||
The relevant makefile code is in mozilla/security/coreconf/Darwin.mk:
101 # May override this with -bundle to create a loadable module.
102 DSO_LDOPTS = -dynamiclib -compatibility_version 1 -current_version 1
-install_name @executable_path/$(notdir $@) -headerpad_max_install_names
$(DARWIN_SDK_LDFLAGS)
103
104 MKSHLIB = $(CC) -arch $(CPU_ARCH) $(DSO_LDOPTS)
We need to find out why the argument to -install_name is not
@executable_path/libssl3.dylib.
It seems that @executable_path is substituted with /Users/nieder.
Reporter | ||
Comment 3•20 years ago
|
||
(In reply to comment #2)
> The relevant makefile code is in mozilla/security/coreconf/Darwin.mk:
>
[snip]
> It seems that @executable_path is substituted with /Users/nieder.
Yeah, the patch does have several instances of @executable_path changed to
/Users/nieder. This used to work up to and including 1.0.4 and some nightlies,
but something must have changed in the last couple weeks. I'll check now if
restoring those instances of @executable_path fixes the build crash.
Comment 4•20 years ago
|
||
You didn't mention you patched your source tree.
Given that, I bet that you applied your patch incorrectly
after you updated the source tree.
In rev. 1.10 of mozilla/security/coreconf/Darwin.mk,
the line that you patched (DSO_LDOPTS = ...) is changed.
So your old patch file wouldn't apply to rev. 1.10 or later,
and would force you to manually apply the patch, hence the
possibility of making a mistake. (Note: two or three weeks
ago you were using rev. 1.9.)
Comment 5•20 years ago
|
||
You should change all instances of @executable_path consistently,
to either /Users/nieder or /Users/nieder/lib/firefox. Your build
output showed that you changed the instance in
mozilla/security/coreconf/Darwin.mk to /Users/nieder but the
instance in mozilla/security/nss/lib/ssl/config.mk to
/Users/nieder/lib/firefox. Based on what you said in the original
bug description, I think /Users/nieder/lib/firefox is the correct
one.
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
Assignee | ||
Updated•7 years ago
|
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•