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)是一组开源的密码,包括 TLS 实现,旨在支持启用安全性的客户端和服务器应用程序的跨平台开发。使用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 许可证。其中,Curl 的 HTTPS 功能支持就依赖于 NSS。NSS 提供了完整的软件开发包,包括密码库、API、命令行工具、文档集(API references、man 帮助、示例代码)。NSS 3.14版本开始,升级到 GPL 兼容的 MPL 2.0 许可证。

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 标准的伪随机生成函数。

NSS 最新的版本是 3.92.0,是 27 July 2023发布的,由于 NSS 依赖于 NSPR,所以该版本需要的 NSPR 版本必须大于 NSPR 4.35,细信息见NSS 3.92 release notes;

参考初识NSS官网NSS编译Building NSShow-to-solve-nss-error-12276-ssl-errornss-error-5961Redhat KB

二、调试过程

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 

#也可以尝试加--connect-timeout
curl -k -s -L 'https://10.24.1.2/agent/download?k=2677ac1f051d4f84ea75465fe441686f97032a193&group=1&protocol=0&root=true&runAccount=root&userAdd=false'` --connect-timeout 20

curl -vv -k -s  -L 'https://10.24.1.2/agent/download?k=2677ac1f051d4f84ea75465fe441686f97032a193&group=1&protocol=0&root=true&runAccount=root&userAdd=false'`

openssl s_client -connect 'https://10.24.1.2/agent/download?k=2677ac1f051d4f84ea75465fe441686f97032a193&group=1&protocol=0&root=true&runAccount=root&userAdd=false'` -msg

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 --tlsv1.2 -vv -k -s  -L 'https://10.24.1.2/agent/download?k=2677ac1f051d4f84ea75465fe441686f97032a193&group=1&protocol=0&root=true&runAccount=root&userAdd=false'`

相关经验表明:如果两端的通过SSL连接的加密连接算法不匹配也会导致本文中的5961 NSS error;比如一端有不支持的算法,一些过久的版本使用NSS build的得;curl: (56) SSL read: errno -5961 表明SSL session因某种原因导致了.连接超时;

三、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

#方式二:
wget "https://curl.haxx.se/download/curl-7.57.0.tar.gz"
tar xvf curl-7.57.0.tar.gz
cd curl-7.57.0
./configure -h 
#--without-ssl 表示禁止安装 OpenSSL;--prefix 表示将 Curl 安装到特定的目录;--with-nss 表示 NSS 安装目录
export LD_LIBRARY_PATH='/root/nssproject/dist/Linux3.13_x86_64_cc_glibc_PTH_64_OPT.OBJ/lib'

./configure --prefix=/opt/curlnss --with-nss=/root/nssproject/dist/Linux3.13_x86_64_cc_glibc_PTH_64_OPT.OBJ/  --without-ssl   ///命令行最后一行输出如果出现 HTTPS IMAP IMAPS,说明配置成功

make //报错如下
curl_ntlm_core.c:101:23: fatal error: pk11pub.h: No such file or directory
 #  include <pk11pub.h>
                       
compilation terminated.

vim .lib/Makefile //找到 CPPFLAGS 变量
PPFLAGS = -I/root/nssproject/dist/Linux3.13_x86_64_cc_glibc_PTH_64_OPT.OBJ//include -I/usr/local/include  //修改为
CPPFLAGS = -I/root/nssproject/dist/Linux3.13_x86_64_cc_glibc_PTH_64_OPT.OBJ//include -I/usr/local/include -I/root/nssproject/dist/public/nss   #其中,/root/nssproject/dist/public/nss为nss编译安装目录

make install

curl -v  //验证

#证书配置
curl-config --ca /etc/ssl/certs/ca-certificates.crt

#方式三
yum update -y nss curl libcurl ca-certificates.noarch
yum --disablerepo=<some-repo-id> update -y nss curl libcurl

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 标准的伪随机生成函数。

NSS离线编译主要步骤: 升级NSS的过程可以分为以下几个步骤:

1)下载NSS源代码: 首先,你需要下载NSS的源代码。你可以在NSS的官方网站(https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS)上找到最新的稳定版本的下载链接。下载并解压缩源代码包。

2)安装依赖库: 在编译NSS之前,你需要安装一些依赖库。这些依赖库包括NSPR(Netscape Portable Runtime)、zlib、sqlite等。你可以使用以下命令安装这些依赖库:

sudo apt-get install nspr zlib sqlite
sudo apt install mercurial git ninja-build python3-pip
python3 -m pip install gyp-next
yum install nss-tools

3)配置环境变量

export NSPR_INCLUDE_DIR=/usr/include/nspr
export NSPR_LIB_DIR=/usr/lib
export PATH=“/opt/homebrew/opt/python/libexec/bin:$PATH”

4)编译和安装NSS: 执行以下命令进行编译和安装:

make
sudo make install //编译NSS并将其安装到指定的路径。

5)配置系统环境: 安装完成后,你需要配置系统环境变量,以便系统能够正确找到NSS。打开/etc/profile文件,并在末尾添加以下内容:


export LD_LIBRARY_PATH=/usr/local/nss/lib:$LD_LIBRARY_PATH

source /etc/profile
验证升级: 执行以下命令验证NSS是否成功升级:

nss-config --version //如果输出显示了最新的NSS版本号,则表示升级成功。

#安装依赖环境
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:'


#验证
nss-config --version
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值