diff options
author | wtc%netscape.com <devnull@localhost> | 2000-12-28 02:22:33 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 2000-12-28 02:22:33 +0000 |
commit | c2848ed9829bc48cc6f8188f671daaa467c3a7c1 (patch) | |
tree | a889cda0a91838a381732c7eebb75ab2f23b693a /security/nss/lib/nss | |
parent | 933abbfd65d5eea4835ee34251da5c212ca32630 (diff) | |
download | nss-hg-c2848ed9829bc48cc6f8188f671daaa467c3a7c1.tar.gz |
More work on shared libraries for NSS.
1. Implemented a way to link all the objects in archive libraries into
a shared library. I query each subdirectory for the list of objects
comprising an archive library (the get_objs makefile target) and link
these objects as opposed to the archive libraries. Not all linkers
support the --whole-archive, -all, or -z allextract options. The
*sym.c solution cannot fully control what objects in the archive
libraries are pulled and what symbols are exported.
2. Moved pkcs7 from libsmime3.so to libnss3.so because certread.c in
libcerthi.a (part of libnss3.so) depends on some PKCS7 functions,
which creates a circular dependency between libsmime3.so and libnss3.so.
This should work on all Unix platforms.
Diffstat (limited to 'security/nss/lib/nss')
-rw-r--r-- | security/nss/lib/nss/config.mk | 33 | ||||
-rw-r--r-- | security/nss/lib/nss/manifest.mn | 1 |
2 files changed, 26 insertions, 8 deletions
diff --git a/security/nss/lib/nss/config.mk b/security/nss/lib/nss/config.mk index 97ba6ba3f..1e3d5f538 100644 --- a/security/nss/lib/nss/config.mk +++ b/security/nss/lib/nss/config.mk @@ -78,25 +78,37 @@ else # $(PROGRAM) has explicit dependencies on $(EXTRA_LIBS) CRYPTOLIB=$(DIST)/lib/libfreebl.$(LIB_SUFFIX) +CRYPTODIR=../freebl ifdef MOZILLA_SECURITY_BUILD CRYPTOLIB=$(DIST)/lib/libcrypto.$(LIB_SUFFIX) + CRYPTODIR=../crypto endif -ifdef MOZILLA_BSAFE_BUILD - CRYPTOLIB+=$(DIST)/lib/libbsafe.$(LIB_SUFFIX) - CRYPTOLIB+=$(DIST)/lib/libfreebl.$(LIB_SUFFIX) -endif -EXTRA_LIBS += \ +SHARED_LIBRARY_LIBS = \ + $(DIST)/lib/libpkcs7.$(LIB_SUFFIX) \ $(DIST)/lib/libcerthi.$(LIB_SUFFIX) \ $(DIST)/lib/libpk11wrap.$(LIB_SUFFIX) \ $(DIST)/lib/libcryptohi.$(LIB_SUFFIX) \ - $(DIST)/lib/libcerthi.$(LIB_SUFFIX) \ - $(DIST)/lib/libpk11wrap.$(LIB_SUFFIX) \ $(DIST)/lib/libsoftoken.$(LIB_SUFFIX) \ $(DIST)/lib/libcertdb.$(LIB_SUFFIX) \ $(CRYPTOLIB) \ $(DIST)/lib/libsecutil.$(LIB_SUFFIX) \ + $(NULL) +EXTRA_LIBS += \ $(DIST)/lib/libdbm.$(LIB_SUFFIX) \ $(NULL) +ifdef MOZILLA_BSAFE_BUILD + EXTRA_LIBS+=$(DIST)/lib/libbsafe.$(LIB_SUFFIX) +endif +SHARED_LIBRARY_DIRS = \ + ../pkcs7 \ + ../certhigh \ + ../pk11wrap \ + ../cryptohi \ + ../softoken \ + ../certdb \ + $(CRYPTODIR) \ + ../util \ + $(NULL) # $(PROGRAM) has NO explicit dependencies on $(EXTRA_SHARED_LIBS) # $(EXTRA_SHARED_LIBS) come before $(OS_LIBS), except on AIX. @@ -108,3 +120,10 @@ EXTRA_SHARED_LIBS += \ $(NULL) endif +#ifeq ($(OS_ARCH),SunOS) +#MKSHLIB += -z text -M mapfile +#endif + +#ifeq ($(OS_ARCH),Linux) +#MKSHLIB += -Wl,--version-script,mapfile +#endif diff --git a/security/nss/lib/nss/manifest.mn b/security/nss/lib/nss/manifest.mn index 15b630024..18dfa49cd 100644 --- a/security/nss/lib/nss/manifest.mn +++ b/security/nss/lib/nss/manifest.mn @@ -40,7 +40,6 @@ MODULE = security CSRCS = \ nssinit.c \ - nsssym.c\ $(NULL) REQUIRES = security dbm |