curl 执行报错:curl: (2) Failed initialization升级NSS到3.21

一、问题说明

在这里插入图片描述

某次在线安装某安全软件时,执行安装curl 无任何响应,调试报错:curl: (2) Failed initialization,NSS error 5961;执行:curl -k -s -L 'https://10.24.1.2/agent/download?k=2677ac1f051d4f84ea75465fe441686f97032a193&group=1&protocol=0&root=true&runAccount=root&userAdd=false'

在这里插入图片描述

正常初始化应如下所示:

Initializing NSS with certpath: sql:/etc/pki/nssdb
*CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none

NSS (Network Security Services)是一组,旨在支持启用安全性的客户端和服务器应用程序的跨平台开发。使用NSS构建的应用程序可以支持SSL v3、TLS、PKCS#5、PKCS#7、PKCS#11、PKCS#12、S/MIME、X.509 v3证书和其他安全标准。和 OpenSSL 一样,它是一个底层密码学库,包括 TLS 实现。NSS 是跨平台的,很多产品都使用了NSS 密码库,比如 Pidgin、Apache OpenOffice、LibreOffice,Red Hat Directory Server, Red Hat Certificate System, Apache 的 mod_nss模块。NSS 提供了完整的软件开发包,包括密码库、API、命令行工具、文档集(API references、man 帮助、示例代码)。NSS 3.14版本开始,升级到 GPL 兼容的 MPL 2.0 许可证。

参考 :初识NSS官网

二、调试过程

1)现场环境版本确认

rpm -q --requires curl
rpm -qa|grep curl
libcurl-7.19.7-37.el6_4.x86_64
python-pycurl-7.19.0-8.el6.x86_64

rpm -ql libcurl
/usr/lib64/libcurl.so.4
/usr/lib64/libcurl.so.4.1.1

ll /usr/lib64/libnss3.so 
-rwxr-xr-x. 1 root root 1296368 11月 24 2013 /usr/lib64/libnss3.so
ll /usr/lib64/libnssutil3.so 
-rwxr-xr-x. 1 root root 179416 11月 24 2013 /usr/lib64/libnssutil3.so
l /usr/lib64/libcurl.so.4
lrwxrwxrwx. 1 root root 16 2月   5 2018 /usr/lib64/libcurl.so.4 -> libcurl.so.4.1.1
rpm -qf /usr/lib64/libcurl.so.4.1.1
libcurl-7.19.7-37.el6_4.x86_64
rpm -qf /usr/lib64/libnssutil3.so 
nss-util-3.15.1-3.el6.x86_64

rpm -qf /usr/lib64/libnss3.so   //输出如下
nss-3.15.1-15.el6.x86_64
rpm -qf /usr/lib64/libnssutil3.so 
nss-util-3.15.1-3.el6.x86_64
You have new mail in /var/spool/mail/root
[root@localhost ~]# rpm -qf /usr/lib64/libnss3.so 
nss-3.15.1-15.el6.x86_64
[root@localhost ~]# rpm -q --requires nss-tools     #查看 nss-tools 也依赖于 nss 包
libc.so.6()(64bit)  
libc.so.6(GLIBC_2.2.5)(64bit)  
libc.so.6(GLIBC_2.3)(64bit)  
libc.so.6(GLIBC_2.3.4)(64bit)  
libc.so.6(GLIBC_2.4)(64bit)  
libdl.so.2()(64bit)  
libnspr4.so()(64bit)  
libnss3.so()(64bit)  
libnss3.so(NSS_3.10)(64bit)  
libnss3.so(NSS_3.11)(64bit)  
libnss3.so(NSS_3.11.7)(64bit)  
libnss3.so(NSS_3.12)(64bit)  
libnss3.so(NSS_3.12.1)(64bit)  
libnss3.so(NSS_3.12.6)(64bit)  
libnss3.so(NSS_3.12.9)(64bit)  
libnss3.so(NSS_3.13)(64bit)  
libnss3.so(NSS_3.14)(64bit)  
libnss3.so(NSS_3.14.1)(64bit)  
libnss3.so(NSS_3.15)(64bit)  
libnss3.so(NSS_3.2)(64bit)  
libnss3.so(NSS_3.3)(64bit)  
libnss3.so(NSS_3.4)(64bit)  
libnss3.so(NSS_3.5)(64bit)  
libnss3.so(NSS_3.6)(64bit)  
libnss3.so(NSS_3.7)(64bit)  
libnss3.so(NSS_3.8)(64bit)  
libnss3.so(NSS_3.9)(64bit)  
libnss3.so(NSS_3.9.2)(64bit)  
libnss3.so(NSS_3.9.3)(64bit)  
libnssutil3.so()(64bit)  
libnssutil3.so(NSSUTIL_3.12)(64bit)  
libnssutil3.so(NSSUTIL_3.12.7)(64bit)  
libnssutil3.so(NSSUTIL_3.15)(64bit)  
libplc4.so()(64bit)  
libplds4.so()(64bit)  
libpthread.so.0()(64bit)  
libpthread.so.0(GLIBC_2.2.5)(64bit)  
libsmime3.so()(64bit)  
libsmime3.so(NSS_3.10)(64bit)  
libsmime3.so(NSS_3.2)(64bit)  
libsmime3.so(NSS_3.3)(64bit)  
libsmime3.so(NSS_3.4)(64bit)  
libsmime3.so(NSS_3.6)(64bit)  
libsmime3.so(NSS_3.9.3)(64bit)  
libssl3.so()(64bit)  
libssl3.so(NSS_3.11.8)(64bit)  
libssl3.so(NSS_3.12.6)(64bit)  
libssl3.so(NSS_3.13.2)(64bit)  
libssl3.so(NSS_3.14)(64bit)  
libssl3.so(NSS_3.15)(64bit)  
libssl3.so(NSS_3.2)(64bit)  
libssl3.so(NSS_3.4)(64bit)  
libssl3.so(NSS_3.7.4)(64bit)  
libz.so.1()(64bit)  
nss(x86-64) = 3.15.1-15.el6
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

**#查看nss包含**
rpm -ql nss  //输出
/etc/pki/nssdb
/etc/pki/nssdb/cert8.db
/etc/pki/nssdb/key3.db
/etc/pki/nssdb/secmod.db
/usr/lib64/libnss3.so
/usr/lib64/libnssckbi.so
/usr/lib64/libnsspem.so
/usr/lib64/libsmime3.so
/usr/lib64/libssl3.so
/usr/lib64/nss/libnssckbi.so

#现场环境centos7
curl --version  //如下
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.36 zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz unix-sockets 

#centos6.5环境输出如下
curl --version
curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz 
#编译升级curl 后,NSS版本并没有对应升级,需要单独升级该库
curl 7.40.0 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp 
Features: IDN IPv6 Largefile NTLM SSL libz 

2)报错确认

在这里插入图片描述

3)经厂商确认需要NSS版本3.21以上
在这里插入图片描述
4)调试

openssl s_client --connect https://10.24.56.101 -msg  //输出
140057047963392:error:2008F002:BIO routines:BIO_lookup_ex:system lib:../crypto/bio/b_addr.c:724:Servname not supported for ai_socktype
connect:errno=0

三、curl升级

1)升级过程

./configure --without-nss --with-ssl=/root/openssl-1.1.1d/build/crypto
#指定连接的证书
curl https://10.24.1.11/agent/ --cacert /etc/pki/tls/certs/ca-bundle.crt

2)NSS升级:

注:NSS编译升级,NSS 依赖于 NSPR,注意后者的版本;由于NSS是一个跨平台的库,构建在许多不同的平台上,有许多选项,构建起来可能很复杂。目前官方同时维护两个构建系统:基于Make的系统和基于gyp的系统。NSS 需要 C 和C++编译环境,但只有具有最小的依赖性,只包括标准的C和C++库,以及zlib。NSS和NSPR像其他Mozilla项目一样使用Mercurial进行源代码管理。

在这里插入图片描述

相关资料:mozilla构建文档发行说明

组件说明:

NSPR:一个跨平台的底层次函数库,主要作用是为了尽量多的支持各类操作系统,NSS 3.x 版本目前支持 18 个平台,提供 I/O 操作,网络操作函数等基础库。NSPR 是 Mozilla 独立的一个工程。

NSS:主要包含各类密码学库,它包含了一个框架,通过这个框架,开发者和 OEMs 能够提供很多补丁,比如优化密码学操作性能(SSL accelerators、指令集)。NSS API 都是 C 语言调用的(NSS 本身也是 C 语言开发的).

SSL&S/MIME:基于 NSS 实现的应用层协议,最主要的就是 SSL 了。

NSS 支持的密码学算法标准和应用如下:

SSL&TLS,NSS 计划从 NSS 3.29 版本开始支持 TLS 1.3 协议。

各类 PKCS 公开密码学标准,详细信息可参考 Public Key Cryptography Standards(https://en.wikipedia.org/wiki/PKCS)

Cryptographic Message Syntax,用于 S/MIME(对 MIME 数据进行加密和签名),关于 CMS 标准和 S/MIME 应用了解的不多,所以在《深入迁出HTTPS:从原理到实践》这本书中并没有阐述。

X.509 v3 证书,这是 HTTPS 协议中非常重要的组成部分。

OCSP,是证书非常有效的补充协议,用于在线校验证书的吊销状态(可扩展,还包括其他状态,比如可以包含证书透明度信息)。

各类密码学算法,包括 RSA、DH、ECC、AES、SHA、HMAC 等等。

符合 FIPS 186-2 标准的伪随机生成函数。

#安装依赖环境
yum install mercurial git ninja-build python3-pip

#升级nss到3.21
mkdir nssproject && cd nssproject
wget no-check-certificate https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_21_RTM/src/nss-3.21-with-nspr-4.10.10.tar.gz
$ rpm -qa|grep nspr
nspr-4.10.0-1.el6.x86_64

wget https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_90_RTM/src/nss-3.90-with-nspr-4.35.tar.gz
#获取nss 和 nspr(Netscape Portable Runtime)源码的最新开发版,在 nss/lib 目录下包含所有导出 api 的源文件,其中 .def 后缀的文件包含对应的 api 列表,比如可以查看 lib/ssl/ssl.def,了解 ssl 协议包含的各种 api。
hg clone https://hg.mozilla.org/projects/nspr
hg clone https://hg.mozilla.org/projects/nss
或,需要先安装Git-cinnabar,它是一个与mercurial存储库交互的Git远程助手。它允许使用git从mercurial远程存储库进行克隆、拉取和推送。
git clone hg::https://hg.mozilla.org/projects/nspr
git clone hg::https://hg.mozilla.org/projects/nss

#编译,因nss 不使用 configure 脚本,所以需要配置不同的环境变量,比如在 linux 使用 shell,在 windows 上使用 Mozilla 提供的构建包。编译完成后,所有编译的文件全部保存在 dist 目录下(和 nss 目录同级)

#如果是src下载的综合包
$ tar -xzf nss-3.21-with-nspr-4.10.10.tar.gz
$ cd nss
$ ls nspr/
admin  build  config  configure  configure.in  lib  LICENSE  Makefile.in  pkg  pr  tools
$ ls nss/
automation  circle.yml  cmd  COPYING  coreconf  coverage  doc  external_tests  lib  Makefile  manifest.mn  pkg  tests  trademarks.txt
$ ls nss/lib/ #在 nss/lib 目录下包含所有导出 api 的源文件,其中 .def 后缀的文件包含对应的 api 列表
base    certhigh  crmf      dbm  freebl  libpkix   manifest.mn  pk11wrap  pkcs7  smime     sqlite  sysinit  zlib
certdb  ckfw      cryptohi  dev  jar     Makefile  nss          pkcs12    pki    softoken  ssl     util

#编译:nss 不使用 onfigure 脚本,所以需要配置不同的环境变量,总体过程还是比较麻烦的,更多参看:https://firefox-source-docs.mozilla.org/security/nss/build.html#source-code
$ BUILD_OPT=1   #其中,1表示编译为优化后的NSS版本,默认为0,表debug模式下的NSS版本
$ USE_64=1  	#其中,1表示以64位环境方式编译,默认值为0,表用32位方式
$ export BUILD_OPT
$ export USE_64
$ echo $BUILD_OPT
$ echo $USE_64

#备份NSS相关文件
rpm -ql nss    //备份如下文件
/etc/pki/nssdb
/etc/pki/nssdb/cert8.db
/etc/pki/nssdb/key3.db
/etc/pki/nssdb/secmod.db
/usr/lib64/libnss3.so
/usr/lib64/libnssckbi.so
/usr/lib64/libnsspem.so
/usr/lib64/libsmime3.so
/usr/lib64/libssl3.so
/usr/lib64/nss/libnssckbi.so

$ pwd
/home/nssproject
$ mkdir nss_backup
$ ls
nss-3.21  nss-3.21-with-nspr-4.10.10.tar.gz  nss_backup
$ cp -pr /etc/pki/nssdb ./nss_backup/
$ cp -pr /usr/lib64/libnss* ./nss_backup/
$ cp -pr /usr/lib64/libsmime3.so ./nss_backup/
$ cp -pr /usr/lib64/libssl3.so ./nss_backup/
$ ls ./nss_backup/
libnss3.so     libnss_compat.so  libnssdbm3.so  libnss_files.so   libnss_nisplus.so  libnsspem.so      libnssutil3.so  libssl3.so
libnssckbi.so  libnssdbm3.chk    libnss_dns.so  libnss_hesiod.so  libnss_nis.so      libnsssysinit.so  libsmime3.so    nssdb
$ ll ./nss_backup/
总用量 2196
-rwxr-xr-x. 1 root root 1296368 1124 2013 libnss3.so
lrwxrwxrwx. 1 root root      38 25 2018 libnssckbi.so -> /etc/alternatives/libnssckbi.so.x86_64
lrwxrwxrwx. 1 root root      30 26 2018 libnss_compat.so -> ../../lib64/libnss_compat.so.2
-rw-r--r--. 1 root root     899 1123 2013 libnssdbm3.chk
-rwxr-xr-x. 1 root root  162824 1123 2013 libnssdbm3.so
lrwxrwxrwx. 1 root root      27 26 2018 libnss_dns.so -> ../../lib64/libnss_dns.so.2
lrwxrwxrwx. 1 root root      29 26 2018 libnss_files.so -> ../../lib64/libnss_files.so.2
lrwxrwxrwx. 1 root root      30 26 2018 libnss_hesiod.so -> ../../lib64/libnss_hesiod.so.2
lrwxrwxrwx. 1 root root      31 26 2018 libnss_nisplus.so -> ../../lib64/libnss_nisplus.so.2
lrwxrwxrwx. 1 root root      27 26 2018 libnss_nis.so -> ../../lib64/libnss_nis.so.2
-rwxr-xr-x. 1 root root  150712 1124 2013 libnsspem.so
-rwxr-xr-x. 1 root root   10352 1124 2013 libnsssysinit.so
-rwxr-xr-x. 1 root root  179416 1124 2013 libnssutil3.so
-rwxr-xr-x. 1 root root  181168 1124 2013 libsmime3.so
-rwxr-xr-x. 1 root root  246584 1124 2013 libssl3.so
drwxr-xr-x. 2 root root    4096 25 2018 nssdb

$ cd nss_backup/
$ mkdir lib64_libnss
$ cp -pr /lib64/libnss* ./lib64_libnss/
$ ls ./lib64_libnss/
libnss_compat-2.12.so  libnss_dns-2.12.so  libnss_files-2.12.so  libnss_hesiod-2.12.so  libnss_nis-2.12.so      libnss_nisplus.so.2
libnss_compat.so.2     libnss_dns.so.2     libnss_files.so.2     libnss_hesiod.so.2     libnss_nisplus-2.12.so  libnss_nis.so.2

#编译
$ cd ../nss-3.21/nss
$ make nss_build_all -j4  #需要gcc 4.8 or greater。报错如下:

coreconf/Werror.mk:55: Unable to find gcc 4.8 or greater, disabling -Werror
mkdir -p ./../nspr/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ
cd ./../nspr/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ ; \
	 sh ../configure \
	--disable-debug --enable-optimize --enable-64bit \
	--with-dist-prefix='/home/nssproject/nss-3.21/nss/../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ' \
	--with-dist-includedir='/home/nssproject/nss-3.21/nss/../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/include'   //后续这2个目录未成功生成
cd coreconf; make export
cd coreconf; make libs
make[1]: Entering directory `/home/nssproject/nss-3.21/nss/coreconf'
make[1]: Entering directory `/home/nssproject/nss-3.21/nss/coreconf'
cd nsinstall; make export
cd nsinstall; make libs
cd nsinstall; make libs
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
make[2]: Nothing to be done for `export'.
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
gcc -o Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall.o -c -O2 -fPIC -DLINUX2_1 -m64 -Wall -DNSS_NO_GCC48 -pipe -ffunction-sections -fdata-sections -DLINUX -Dlinux -DHAVE_STRERROR -DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/include -I../../../dist/public/coreconf -I../../../dist/private/coreconf  nsinstall.c
gcc -o Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall.o -c -O2 -fPIC -DLINUX2_1 -m64 -Wall -DNSS_NO_GCC48 -pipe -ffunction-sections -fdata-sections -DLINUX -Dlinux -DHAVE_STRERROR -DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/include -I../../../dist/public/coreconf -I../../../dist/private/coreconf  nsinstall.c
mkdir: 无法创建目录"Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ": 文件已存在
make[2]: *** [Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/pathsub.o] 错误 1
make[2]: *** 正在等待未完成的任务....
gcc -o Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/pathsub.o -c -O2 -fPIC -DLINUX2_1 -m64 -Wall -DNSS_NO_GCC48 -pipe -ffunction-sections -fdata-sections -DLINUX -Dlinux -DHAVE_STRERROR -DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/include -I../../../dist/public/coreconf -I../../../dist/private/coreconf  pathsub.c
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for whoami... /usr/bin/whoami
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
make[1]: *** [libs] 错误 2
make[1]: Leaving directory `/home/nssproject/nss-3.21/nss/coreconf'
make: *** [libs] 错误 2
make: *** 正在等待未完成的任务....
gcc -o Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -O2 -fPIC -DLINUX2_1 -m64 -Wall -DNSS_NO_GCC48 -pipe -ffunction-sections -fdata-sections -DLINUX -Dlinux -DHAVE_STRERROR -DXP_UNIX -UDEBUG -DNDEBUG -D_REENTRANT -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I../../../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/include -I../../../dist/public/coreconf -I../../../dist/private/coreconf  Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall.o Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/pathsub.o -m64   -lpthread  -ldl -lc

true -m 775 Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall ../../../dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/bin
checking whether we are cross compiling... make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/coreconf/nsinstall'
make[1]: Leaving directory `/home/nssproject/nss-3.21/nss/coreconf'
cd lib; make export
make[1]: Entering directory `/home/nssproject/nss-3.21/nss/lib'
cd util; make export
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/util'
Creating ../../../dist/public/nss
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 base64.h ciferfam.h hasht.h nssb64.h nssb64t.h nsslocks.h nssilock.h nssilckt.h nssrwlk.h nssrwlkt.h nssutil.h pkcs11.h pkcs11f.h pkcs11p.h pkcs11t.h pkcs11n.h pkcs11u.h pkcs1sig.h portreg.h secasn1.h secasn1t.h seccomon.h secder.h secdert.h secdig.h secdigt.h secitem.h secoid.h secoidt.h secport.h secerr.h utilmodt.h utilrename.h utilpars.h utilparst.h ../../../dist/public/nss
Creating ../../../dist/private/nss
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 verref.h templates.c ../../../dist/private/nss
no
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/util'
checking for suffix of object files... cd freebl; make export
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/freebl'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 blapit.h shsign.h ecl/ecl-exp.h nsslowhash.h ../../../dist/public/nss
o
checking whether we are using the GNU C compiler... ../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 alghmac.h blapi.h hmacct.h secmpi.h secrng.h ec.h ecl/ecl.h ecl/ecl-curve.h ../../../dist/private/nss
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/freebl'
cd sqlite; make export
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/sqlite'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 sqlite3.h ../../../dist/private/nss
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/sqlite'
cd dbm; make export
yes
checking whether gcc accepts -g... make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/dbm'
cd include; make export
yes
checking for gcc option to accept ISO C89... make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/dbm/include'
Creating ../../../../dist/public/dbm
Creating ../../../../dist/private/dbm
../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 mcom_db.h ncompat.h winfile.h ../../../../dist/public/dbm
../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 hsearch.h page.h extern.h queue.h hash.h search.h ../../../../dist/private/dbm
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/dbm/include'
cd src; make export
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/dbm/src'
make[3]: Nothing to be done for `export'.
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/dbm/src'
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/dbm'
none needed
checking for ranlib... ranlib
checking for as... cd softoken; make export
/usr/bin/as
checking for ar... /usr/bin/ar
checking for ld... /usr/bin/ld
checking for strip... /usr/bin/strip
checking for windres... no
checking how to run the C preprocessor... make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/softoken'
cd legacydb; make export
cd legacydb; make private_export
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/softoken/legacydb'
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/softoken/legacydb'
gcc -E
There are no private exports.
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/softoken/legacydb'
There are no private exports.
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/softoken/legacydb'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 lgglue.h lowkeyi.h lowkeyti.h pkcs11ni.h softoken.h softoknt.h softkver.h sdb.h sftkdbt.h ../../../dist/private/nss
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/softoken'
cd base; make export
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/base'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 nssbaset.h nssbase.h ../../../dist/public/nss
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 baset.h base.h ../../../dist/private/nss
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/base'
cd dev; make export
checking for gcc -pipe support... no
checking whether C compiler supports -fprofile-generate... make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/dev'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 ckhelper.h devm.h devtm.h devt.h dev.h nssdevt.h nssdev.h ../../../dist/private/nss
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/dev'
cd pki; make export
yes
checking for visibility(hidden) attribute... make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/pki'
../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pki.h pkit.h nsspkit.h nsspki.h pkistore.h pki3hack.h pkitm.h pkim.h ../../../dist/private/nss
yes
checking for visibility pragma support... make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/pki'
cd libpkix; make export
yes
make[2]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix'
checking for perl5... no
checking for perl... /usr/bin/perl
cd include; make export
cd include; make private_export
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/include'
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/include'
../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix.h pkix_crlsel.h pkix_errorstrings.h pkix_results.h pkixt.h pkix_certsel.h pkix_params.h pkix_revchecker.h pkix_certstore.h pkix_pl_pki.h pkix_sample_modules.h pkix_checker.h pkix_pl_system.h pkix_util.h ../../../../dist/private/nss
../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix.h pkix_crlsel.h pkix_errorstrings.h pkix_results.h pkixt.h pkix_certsel.h pkix_params.h pkix_revchecker.h pkix_certstore.h pkix_pl_pki.h pkix_sample_modules.h pkix_checker.h pkix_pl_system.h pkix_util.h ../../../../dist/private/nss
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/include'
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/include'
cd pkix; make private_export
cd pkix; make export
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix'
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix'
cd certsel; make export
cd certsel; make private_export
cd certsel; make private_export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
checking for dlopen in -ldl... ../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_certselector.h pkix_comcertselparams.h ../../../../../dist/private/nss
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_certselector.h pkix_comcertselparams.h ../../../../../dist/private/nss
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_certselector.h pkix_comcertselparams.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/certsel'
cd crlsel; make private_export
cd crlsel; make export
cd crlsel; make private_export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_comcrlselparams.h pkix_crlselector.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_comcrlselparams.h pkix_crlselector.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
cd checker; make private_export
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_comcrlselparams.h pkix_crlselector.h ../../../../../dist/private/nss
cd checker; make private_export
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/crlsel'
cd checker; make export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
yes
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_basicconstraintschecker.h pkix_certchainchecker.h pkix_crlchecker.h pkix_ekuchecker.h pkix_expirationchecker.h pkix_namechainingchecker.h pkix_nameconstraintschecker.h pkix_ocspchecker.h pkix_policychecker.h pkix_revocationmethod.h pkix_revocationchecker.h pkix_signaturechecker.h pkix_targetcertchecker.h ../../../../../dist/private/nss
checking dlfcn.h usability... ../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_basicconstraintschecker.h pkix_certchainchecker.h pkix_crlchecker.h pkix_ekuchecker.h pkix_expirationchecker.h pkix_namechainingchecker.h pkix_nameconstraintschecker.h pkix_ocspchecker.h pkix_policychecker.h pkix_revocationmethod.h pkix_revocationchecker.h pkix_signaturechecker.h pkix_targetcertchecker.h ../../../../../dist/private/nss
symlink creation race: /home/nssproject/nss-3.21/dist/private/nss/pkix_targetcertchecker.h
nsinstall: symlink was attempted in working directory /home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker from ../../../nss/lib/libpkix/pkix/checker/pkix_targetcertchecker.h to /home/nssproject/nss-3.21/dist/private/nss/pkix_targetcertchecker.h.
: File exists
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
make[4]: *** [private_export] 已放弃
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
make[3]: *** [private_export] 错误 2
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix'
make[2]: *** [private_export] 错误 2
make[2]: *** 正在等待未完成的任务....
cd params; make private_export
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_basicconstraintschecker.h pkix_certchainchecker.h pkix_crlchecker.h pkix_ekuchecker.h pkix_expirationchecker.h pkix_namechainingchecker.h pkix_nameconstraintschecker.h pkix_ocspchecker.h pkix_policychecker.h pkix_revocationmethod.h pkix_revocationchecker.h pkix_signaturechecker.h pkix_targetcertchecker.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/checker'
cd params; make export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/params'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/params'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_procparams.h pkix_trustanchor.h pkix_valparams.h pkix_resourcelimits.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/params'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_procparams.h pkix_trustanchor.h pkix_valparams.h pkix_resourcelimits.h ../../../../../dist/private/nss
cd results; make private_export
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/params'
yes
checking dlfcn.h presence... cd results; make export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/results'
yes
checking for dlfcn.h... yes
checking whether gcc needs -traditional... make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/results'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_buildresult.h pkix_policynode.h pkix_valresult.h pkix_verifynode.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/results'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_buildresult.h pkix_policynode.h pkix_valresult.h pkix_verifynode.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/results'
cd store; make private_export
cd store; make export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/store'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/store'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_store.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/store'
cd top; make private_export
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_store.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/store'
cd top; make export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/top'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_build.h pkix_lifecycle.h pkix_validate.h ../../../../../dist/private/nss
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/top'
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/top'
cd util; make private_export
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_build.h pkix_lifecycle.h pkix_validate.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/top'
cd util; make export
no
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/util'
checking for dladdr... ../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_tools.h pkix_error.h pkix_logger.h pkix_list.h ../../../../../dist/private/nss
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/util'
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/util'
There are no private exports.
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_tools.h pkix_error.h pkix_logger.h pkix_list.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix/util'
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix'
cd pkix_pl_nss; make export
make[3]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss'
cd pki; make export
cd pki; make private_export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/pki'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/pki'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_basicconstraints.h pkix_pl_cert.h pkix_pl_certpolicyinfo.h pkix_pl_certpolicymap.h pkix_pl_certpolicyqualifier.h pkix_pl_crl.h pkix_pl_crldp.h pkix_pl_crlentry.h pkix_pl_date.h pkix_pl_generalname.h pkix_pl_infoaccess.h pkix_pl_nameconstraints.h pkix_pl_ocsprequest.h pkix_pl_ocspresponse.h pkix_pl_publickey.h pkix_pl_x500name.h pkix_pl_ocspcertid.h ../../../../../dist/private/nss
yes
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/pki'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_basicconstraints.h pkix_pl_cert.h pkix_pl_certpolicyinfo.h pkix_pl_certpolicymap.h pkix_pl_certpolicyqualifier.h pkix_pl_crl.h pkix_pl_crldp.h pkix_pl_crlentry.h pkix_pl_date.h pkix_pl_generalname.h pkix_pl_infoaccess.h pkix_pl_nameconstraints.h pkix_pl_ocsprequest.h pkix_pl_ocspresponse.h pkix_pl_publickey.h pkix_pl_x500name.h pkix_pl_ocspcertid.h ../../../../../dist/private/nss
cd system; make export
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/pki'
cd system; make private_export
checking for gettid... make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/system'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/system'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_common.h pkix_pl_mem.h pkix_pl_object.h pkix_pl_string.h pkix_pl_primhash.h pkix_pl_bigint.h pkix_pl_mutex.h pkix_pl_bytearray.h pkix_pl_lifecycle.h pkix_pl_oid.h pkix_pl_hashtable.h pkix_pl_rwlock.h pkix_pl_monitorlock.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/system'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_common.h pkix_pl_mem.h pkix_pl_object.h pkix_pl_string.h pkix_pl_primhash.h pkix_pl_bigint.h pkix_pl_mutex.h pkix_pl_bytearray.h pkix_pl_lifecycle.h pkix_pl_oid.h pkix_pl_hashtable.h pkix_pl_rwlock.h pkix_pl_monitorlock.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/system'
cd module; make export
cd module; make private_export
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/module'
make[4]: Entering directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/module'
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_aiamgr.h pkix_pl_colcertstore.h pkix_pl_httpcertstore.h pkix_pl_httpdefaultclient.h pkix_pl_ldapt.h pkix_pl_ldapcertstore.h pkix_pl_ldapresponse.h pkix_pl_ldaprequest.h pkix_pl_ldapdefaultclient.h pkix_pl_nsscontext.h pkix_pl_pk11certstore.h pkix_pl_socket.h ../../../../../dist/private/nss
../../../../coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/nsinstall -R -m 444 pkix_pl_aiamgr.h pkix_pl_colcertstore.h pkix_pl_httpcertstore.h pkix_pl_httpdefaultclient.h pkix_pl_ldapt.h pkix_pl_ldapcertstore.h pkix_pl_ldapresponse.h pkix_pl_ldaprequest.h pkix_pl_ldapdefaultclient.h pkix_pl_nsscontext.h pkix_pl_pk11certstore.h pkix_pl_socket.h ../../../../../dist/private/nss
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/module'
make[4]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss/module'
There are no private exports.
make[3]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix/pkix_pl_nss'
make[2]: Leaving directory `/home/nssproject/nss-3.21/nss/lib/libpkix'
make[1]: *** [export] 错误 2
make[1]: Leaving directory `/home/nssproject/nss-3.21/nss/lib'
make: *** [export] 错误 2
no
checking for lchown... yes
checking for setpriority... yes
checking for strerror... yes
checking for syscall... yes
checking for pthread_create in -lpthreads... no
checking for pthread_create in -lpthread... yes
checking whether gcc accepts -pthread... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config/Makefile
config.status: creating config/autoconf.mk
config.status: creating config/nsprincl.mk
config.status: creating config/nsprincl.sh
config.status: creating config/nspr-config
config.status: creating config/nspr.pc
config.status: creating lib/Makefile
config.status: creating lib/ds/Makefile
config.status: creating lib/libc/Makefile
config.status: creating lib/libc/include/Makefile
config.status: creating lib/libc/src/Makefile
config.status: creating lib/tests/Makefile
config.status: creating pkg/Makefile
config.status: creating pr/Makefile
config.status: creating pr/include/Makefile
config.status: creating pr/include/md/Makefile
config.status: creating pr/include/obsolete/Makefile
config.status: creating pr/include/private/Makefile
config.status: creating pr/src/Makefile
config.status: creating pr/src/io/Makefile
config.status: creating pr/src/linking/Makefile
config.status: creating pr/src/malloc/Makefile
config.status: creating pr/src/md/Makefile
config.status: creating pr/src/md/unix/Makefile
config.status: creating pr/src/memory/Makefile
config.status: creating pr/src/misc/Makefile
config.status: creating pr/src/threads/Makefile
config.status: creating pr/tests/Makefile
config.status: creating pr/tests/dll/Makefile
config.status: creating pkg/linux/Makefile
config.status: creating pr/src/pthreads/Makefile
config.status: executing default commands

#   

$ cd ../
$ ls   #会产生dist目录,所有编译的文件全部保存在 dist 目录下
dist  nspr  nss
$ find / -name Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ
/home/nssproject/nss-3.21/nspr/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ
/home/nssproject/nss-3.21/nss/coreconf/nsinstall/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ

$ ls ./dist/Linux2.6_x86_64_cc_glibc_PTH_64_OPT.OBJ/
bin  include  lib

#编译后,直接运行命令行会报错的,需要 export 一些目录
export LD_LIBRARY_PATH='/root/nssproject/dist/Linux3.13_x86_64_cc_glibc_PTH_64_OPT.OBJ/lib:'

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/131212489
今日推荐