Issues building Nginx using boringssl
Jinze YANG
rttwyjz at gmail.com
Tue Feb 20 13:29:21 UTC 2024
Hi,
I have attached this file, please check it out.
-------------------------------------------------------
> Hi,
>
> Your boringssl paths look ok.
>
> What's in objs/autoconf.err ?
>
> > On 20 Feb 2024, at 12:29, Jinze YANG <rttwyjz at gmail.com> wrote:
> >
> > Hello,
> > As you can see, boringssl's libcrypto.a and libssl.a are in two
> separate directories, as shown below:
> > root at VM-8-12-debian ~/boringssl/build # ls
> > bssl CMakeCache.txt cmake_install.cmake crypto_test decrepit
> embed_test_data_args.txt libpki.a pki_test ssl_test urandom_test
> > build.ninja CMakeFiles crypto crypto_test_data.cc decrepit_test
> libboringssl_gtest.a libtest_support_lib.a ssl tool util
> > root at VM-8-12-debian ~/boringssl/build # cd crypto
> > root at VM-8-12-debian ~/boringssl/build/crypto # ls
> > chacha cipher_extra CMakeFiles cmake_install.cmake crypto_test
> err_data.c fipsmodule libcrypto.a test urandom_test
> > root at VM-8-12-debian ~/boringssl/build/crypto # cd ..
> > root at VM-8-12-debian ~/boringssl/build # cd ssl
> > root at VM-8-12-debian ~/boringssl/build/ssl # ls
> > CMakeFiles cmake_install.cmake libssl.a ssl_test test
> >
> > I tried using absolute paths and adding
> -Wl,-rpath=/root/boringssl/build/ssl
> -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags but
> this Doesn't play any role.
> >
> > --
> > Best Regards,
> > Jinze Yang
> >
> > -------------------------------------------------------
> > > On Tue, Feb 20, 2024 at 12:23 AM 杨金泽 <rttwyjz at gmail.com
> <mailto:rttwyjz at gmail.com>> wrote:
> > > >
> > > > I encountered the following error when using boringssl to build
> > > Nginx:
> > > > checking for OpenSSL library ... not found
> > > > checking for OpenSSL library in /usr/local/ ... not found
> > > > checking for OpenSSL library in /usr/pkg/ ... not found
> > > > checking for OpenSSL library in /opt/local/ ... not found
> > > > ./auto/configure: error: SSL modules require the OpenSSL
> library.
> > > > You can either do not enable the modules, or install the OpenSSL
> > > library
> > > > into the system, or build the OpenSSL library statically from
> the
> > > source
> > > > with nginx by using --with-openssl=<path> option.
> > > >
> > > > At first I thought it was caused by openssl not existing, but
> when I
> > > ran openssl version -a, everything was normal:
> > > > root at iZ2hmeokcpbj42Z ~/nginx # openssl version -a
> > > > OpenSSL 3.0.11 19 Sep 2023 (Library: OpenSSL 3.0.11 19 Sep 2023)
> > > > built on: Mon Oct 23 17:52:22 2023 UTC
> > > > platform: debian-amd64
> > > > options: bn(64,64)
> > > > compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall
> > > -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2
> > > -Wa,--noexecstack -g -O2 -ffile-prefix-map=
> > > /build/reproducible-path/openssl-3.0.11=. -fstack-protector-strong
> > > -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DL_ENDIAN
> > > -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time
> > > -D_FORTIFY_SOURCE=2
> > > > OPENSSLDIR: "/usr/lib/ssl"
> > > > ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-3"
> > > > MODULESDIR: "/usr/lib/x86_64-linux-gnu/ossl-modules"
> > > > Seeding source: os-specific
> > > > CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0xd01e4fbb
> > > >
> > > > Later my friend and I discovered that the latest boringssl
> > > compatible OpenSSL version seems to have been upgraded to 3.2.x,
> but I
> > > am not sure if this is the problem. The final solution was to
> switch
> > > to https://github.com/google/boringssl
> > > /commit/c39e6cd9ec5acebb6de2adffc03cfe03b07f08ab this commit.But I
> > > don't think switching to a previous commit to build is a perfect
> > > solution, so I'd like to ask for some help.
> > > >
> > > > My build steps are as follows:
> > > > apt update
> > > > apt install build-essential ca-certificates zlib1g-dev libpcre3
> > > libpcre3-dev tar unzip libssl-dev wget curl git cmake ninja-build
> > > mercurial libunwind-dev pkg-config
> > > >
> > > > git clone https://github.com/google/boringssl.git
> > > > cd boringssl
> > > > mkdir build
> > > > cd build
> > > > cmake -GNinja ..
> > > > ninja
> > > > cd ../..
> > > >
> > > > git clone --recurse-submodules -j8
> > > https://github.com/google/ngx_brotli
> > > > cd ngx_brotli/deps/brotli
> > > > mkdir out && cd out
> > > > cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF
> > > -DCMAKE_C_FLAGS="-Ofast -m64 -march=native -mtune=native -flto
> > > -funroll-loops -ffunction-sections -fdata-sections
> -Wl,--gc-sections"
> > > -DCMAKE_CXX_FLAGS ="-Ofast -m64 -march=native -mtune=native -flto
> > > -funroll-loops -ffunction-sections -fdata-sections
> -Wl,--gc-sections"
> > > -DCMAKE_INSTALL_PREFIX=./installed ..
> > > > cmake --build . --config Release --target brotlienc
> > > > cd ../../../..
> > > >
> > > > hg clone https://hg.nginx.org/nginx
> > > > cd nginx
> > > > ./auto/configure --user=www --group=www
> --prefix=/www/server/nginx
> > > --with-pcre --add-module=/root/ngx_brotli --with-http_v2_module
> > > --with-stream --with-stream_ssl_module --with-http_ssl_module
> > > --with-http_gzip_static_module --with-http_gunzip_module
> > > --with-http_sub_module --with-http_flv_module
> > > --with-http_addition_module --with-http_realip_module
> > > --with-http_mp4_module --with-ld -opt=-Wl,-E
> --with-cc-opt=-Wno-error
> > > --with-ld-opt=-ljemalloc --with-http_dav_module
> --with-http_v3_module
> > > --with-cc-opt=-I ../boringssl/include
> > > --with-ld-opt='-L../boringssl/build/ssl
> -L../boringssl/build/crypto'
> > > > make
> > > > make install
> > > >
> > > > System information:
> > > > checking for OS
> > > > + Linux 6.1.0-18-amd64 x86_64
> > > > checking for C compiler ... found
> > > > + using GNU C compiler
> > > > + gcc version: 12.2.0 (Debian 12.2.0-14)
> > >
> > > This does not look correct to me, based on my knowledge of
> OpenSSL. (I
> > > don't have experience with BoringSSL):
> > >
> > > --with-ld-opt='-L../boringssl/build/ssl
> > > -L../boringssl/build/crypto'
> > >
> > > You are trying to link two OpenSSL-compatible libraries. They are
> > > libcrypto.{a|so}, and libssl.{a|so}. Those artifacts are usually
> > > placed in a lib/ directory, not in separate ssl/ and crypto/
> > > directories. (Two separate directories may be a BoringSSL-ism).
> > >
> > > So I believe the proper flag would be similar to:
> > >
> > > --with-ld-opt='-L../boringssl/build/lib
> > >
> > > You should also consider using the the following option so the
> library
> > > used at runtime is the same library used at compile and link time:
> > >
> > > -Wl,-rpath=../boringssl/build/lib -Wl,--enable-new-dtags
> > >
> > > But you should change ../boringssl/build/lib to the full path, and
> not
> > > use the relative path.
> > >
> > > Also see
> > >
> <https://wiki.openssl.org/index.php/Compilation_and_Installation#Using
> > > _RPATHs>
> > > or the BoringSSL equivalent document.
> > >
> > > Jeff
> > > _______________________________________________
> > > nginx mailing list
> > > nginx at nginx.org <mailto:nginx at nginx.org>
> > > https://mailman.nginx.org/mailman/listinfo/nginx
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > https://mailman.nginx.org/mailman/listinfo/nginx
>
> ----
> Roman Arutyunyan
> arut at nginx.com
>
>
>
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx
--
Best Regards,
Jinze Yang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20240220/3a01c562/attachment-0001.htm>
-------------- next part --------------
----------------------------------------
checking for C compiler
----------------------------------------
checking for gcc -pipe switch
----------------------------------------
checking for --with-ld-opt="-L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags"
----------------------------------------
checking for -Wl,-E switch
----------------------------------------
checking for gcc builtin atomic operations
----------------------------------------
checking for C99 variadic macros
----------------------------------------
checking for gcc variadic macros
----------------------------------------
checking for gcc builtin 64 bit byteswap
----------------------------------------
checking for unistd.h
----------------------------------------
checking for inttypes.h
----------------------------------------
checking for limits.h
----------------------------------------
checking for sys/filio.h
objs/autotest.c:3:10: fatal error: sys/filio.h: No such file or directory
3 | #include <sys/filio.h>
| ^~~~~~~~~~~~~
compilation terminated.
----------
#include <sys/filio.h>
int main(void) {
return 0;
}
----------
cc -o objs/autotest objs/autotest.c
----------
----------------------------------------
checking for sys/param.h
----------------------------------------
checking for sys/mount.h
----------------------------------------
checking for sys/statvfs.h
----------------------------------------
checking for crypt.h
----------------------------------------
checking for epoll
----------------------------------------
checking for EPOLLRDHUP
----------------------------------------
checking for EPOLLEXCLUSIVE
----------------------------------------
checking for eventfd()
----------------------------------------
checking for O_PATH
----------------------------------------
checking for sendfile()
----------------------------------------
checking for sendfile64()
----------------------------------------
checking for sys/prctl.h
----------------------------------------
checking for prctl(PR_SET_DUMPABLE)
----------------------------------------
checking for prctl(PR_SET_KEEPCAPS)
----------------------------------------
checking for capabilities
----------------------------------------
checking for crypt_r()
----------------------------------------
checking for sys/vfs.h
----------------------------------------
checking for BPF sockhash
----------------------------------------
checking for SO_COOKIE
----------------------------------------
checking for UDP_SEGMENT
----------------------------------------
checking for poll()
----------------------------------------
checking for /dev/poll
objs/autotest.c:4:10: fatal error: sys/devpoll.h: No such file or directory
4 | #include <sys/devpoll.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/devpoll.h>
int main(void) {
int n, dp; struct dvpoll dvp;
dp = 0;
dvp.dp_fds = NULL;
dvp.dp_nfds = 0;
dvp.dp_timeout = 0;
n = ioctl(dp, DP_POLL, &dvp);
if (n == -1) return 1;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for kqueue
objs/autotest.c:4:10: fatal error: sys/event.h: No such file or directory
4 | #include <sys/event.h>
| ^~~~~~~~~~~~~
compilation terminated.
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/event.h>
int main(void) {
(void) kqueue();
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for crypt()
/usr/bin/ld: /tmp/ccYR4UY1.o: in function `main':
autotest.c:(.text+0x19): undefined reference to `crypt'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
int main(void) {
crypt("test", "salt");;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for crypt() in libcrypt
----------------------------------------
checking for F_READAHEAD
objs/autotest.c: In function 'main':
objs/autotest.c:7:14: error: 'F_READAHEAD' undeclared (first use in this function)
7 | fcntl(0, F_READAHEAD, 1);;
| ^~~~~~~~~~~
objs/autotest.c:7:14: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
int main(void) {
fcntl(0, F_READAHEAD, 1);;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for posix_fadvise()
----------------------------------------
checking for O_DIRECT
----------------------------------------
checking for F_NOCACHE
objs/autotest.c: In function 'main':
objs/autotest.c:7:14: error: 'F_NOCACHE' undeclared (first use in this function)
7 | fcntl(0, F_NOCACHE, 1);;
| ^~~~~~~~~
objs/autotest.c:7:14: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
int main(void) {
fcntl(0, F_NOCACHE, 1);;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for directio()
objs/autotest.c: In function 'main':
objs/autotest.c:8:5: warning: implicit declaration of function 'directio' [-Wimplicit-function-declaration]
8 | directio(0, DIRECTIO_ON);;
| ^~~~~~~~
objs/autotest.c:8:17: error: 'DIRECTIO_ON' undeclared (first use in this function)
8 | directio(0, DIRECTIO_ON);;
| ^~~~~~~~~~~
objs/autotest.c:8:17: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/fcntl.h>
int main(void) {
directio(0, DIRECTIO_ON);;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for statfs()
----------------------------------------
checking for statvfs()
----------------------------------------
checking for dlopen()
----------------------------------------
checking for sched_yield()
----------------------------------------
checking for sched_setaffinity()
----------------------------------------
checking for SO_SETFIB
objs/autotest.c: In function 'main':
objs/autotest.c:7:31: error: 'SO_SETFIB' undeclared (first use in this function)
7 | setsockopt(0, SOL_SOCKET, SO_SETFIB, NULL, 0);
| ^~~~~~~~~
objs/autotest.c:7:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
int main(void) {
setsockopt(0, SOL_SOCKET, SO_SETFIB, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for SO_REUSEPORT
----------------------------------------
checking for SO_ACCEPTFILTER
objs/autotest.c: In function 'main':
objs/autotest.c:7:31: error: 'SO_ACCEPTFILTER' undeclared (first use in this function); did you mean 'SO_LOCK_FILTER'?
7 | setsockopt(0, SOL_SOCKET, SO_ACCEPTFILTER, NULL, 0);
| ^~~~~~~~~~~~~~~
| SO_LOCK_FILTER
objs/autotest.c:7:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
int main(void) {
setsockopt(0, SOL_SOCKET, SO_ACCEPTFILTER, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for SO_BINDANY
objs/autotest.c: In function 'main':
objs/autotest.c:7:31: error: 'SO_BINDANY' undeclared (first use in this function)
7 | setsockopt(0, SOL_SOCKET, SO_BINDANY, NULL, 0);
| ^~~~~~~~~~
objs/autotest.c:7:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
int main(void) {
setsockopt(0, SOL_SOCKET, SO_BINDANY, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for IP_TRANSPARENT
----------------------------------------
checking for IP_BINDANY
objs/autotest.c: In function 'main':
objs/autotest.c:8:31: error: 'IP_BINDANY' undeclared (first use in this function)
8 | setsockopt(0, IPPROTO_IP, IP_BINDANY, NULL, 0);
| ^~~~~~~~~~
objs/autotest.c:8:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void) {
setsockopt(0, IPPROTO_IP, IP_BINDANY, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for IP_BIND_ADDRESS_NO_PORT
----------------------------------------
checking for IP_RECVDSTADDR
objs/autotest.c: In function 'main':
objs/autotest.c:8:31: error: 'IP_RECVDSTADDR' undeclared (first use in this function); did you mean 'IP_ORIGDSTADDR'?
8 | setsockopt(0, IPPROTO_IP, IP_RECVDSTADDR, NULL, 0);
| ^~~~~~~~~~~~~~
| IP_ORIGDSTADDR
objs/autotest.c:8:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void) {
setsockopt(0, IPPROTO_IP, IP_RECVDSTADDR, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for IP_SENDSRCADDR
objs/autotest.c: In function 'main':
objs/autotest.c:8:31: error: 'IP_SENDSRCADDR' undeclared (first use in this function)
8 | setsockopt(0, IPPROTO_IP, IP_SENDSRCADDR, NULL, 0);
| ^~~~~~~~~~~~~~
objs/autotest.c:8:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void) {
setsockopt(0, IPPROTO_IP, IP_SENDSRCADDR, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for IP_PKTINFO
----------------------------------------
checking for IPV6_RECVPKTINFO
----------------------------------------
checking for IP_MTU_DISCOVER
----------------------------------------
checking for IPV6_MTU_DISCOVER
----------------------------------------
checking for IP_DONTFRAG
objs/autotest.c: In function 'main':
objs/autotest.c:8:31: error: 'IP_DONTFRAG' undeclared (first use in this function); did you mean 'IPV6_DONTFRAG'?
8 | setsockopt(0, IPPROTO_IP, IP_DONTFRAG, NULL, 0);
| ^~~~~~~~~~~
| IPV6_DONTFRAG
objs/autotest.c:8:31: note: each undeclared identifier is reported only once for each function it appears in
----------
#include <sys/types.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(void) {
setsockopt(0, IPPROTO_IP, IP_DONTFRAG, NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for IPV6_DONTFRAG
----------------------------------------
checking for TCP_DEFER_ACCEPT
----------------------------------------
checking for TCP_KEEPIDLE
----------------------------------------
checking for TCP_FASTOPEN
----------------------------------------
checking for TCP_INFO
----------------------------------------
checking for accept4()
----------------------------------------
checking for int size
----------------------------------------
checking for long size
----------------------------------------
checking for long long size
----------------------------------------
checking for void * size
----------------------------------------
checking for uint32_t
----------------------------------------
checking for uint64_t
----------------------------------------
checking for sig_atomic_t
----------------------------------------
checking for sig_atomic_t size
----------------------------------------
checking for socklen_t
----------------------------------------
checking for in_addr_t
----------------------------------------
checking for in_port_t
----------------------------------------
checking for rlim_t
----------------------------------------
checking for uintptr_t
----------------------------------------
checking for system byte ordering
----------------------------------------
checking for size_t size
----------------------------------------
checking for off_t size
----------------------------------------
checking for time_t size
----------------------------------------
checking for AF_INET6
----------------------------------------
checking for setproctitle()
objs/autotest.c: In function 'main':
objs/autotest.c:7:5: warning: implicit declaration of function 'setproctitle' [-Wimplicit-function-declaration]
7 | setproctitle("test");;
| ^~~~~~~~~~~~
/usr/bin/ld: /tmp/ccfGBZko.o: in function `main':
autotest.c:(.text+0x14): undefined reference to `setproctitle'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main(void) {
setproctitle("test");;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for pread()
----------------------------------------
checking for pwrite()
----------------------------------------
checking for pwritev()
----------------------------------------
checking for strerrordesc_np()
objs/autotest.c: In function 'main':
objs/autotest.c:7:16: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
7 | char *p; p = strerrordesc_np(0);
| ^
----------------------------------------
checking for localtime_r()
----------------------------------------
checking for clock_gettime(CLOCK_MONOTONIC)
----------------------------------------
checking for posix_memalign()
----------------------------------------
checking for memalign()
----------------------------------------
checking for mmap(MAP_ANON|MAP_SHARED)
----------------------------------------
checking for mmap("/dev/zero", MAP_SHARED)
----------------------------------------
checking for System V shared memory
----------------------------------------
checking for POSIX semaphores
----------------------------------------
checking for struct msghdr.msg_control
----------------------------------------
checking for ioctl(FIONBIO)
----------------------------------------
checking for ioctl(FIONREAD)
----------------------------------------
checking for struct tm.tm_gmtoff
----------------------------------------
checking for struct dirent.d_namlen
objs/autotest.c: In function 'main':
objs/autotest.c:8:29: error: 'struct dirent' has no member named 'd_namlen'; did you mean 'd_name'?
8 | struct dirent dir; dir.d_namlen = 0;
| ^~~~~~~~
| d_name
objs/autotest.c:9:42: error: 'struct dirent' has no member named 'd_namlen'; did you mean 'd_name'?
9 | printf("%d", (int) dir.d_namlen);
| ^~~~~~~~
| d_name
----------
#include <sys/types.h>
#include <unistd.h>
#include <dirent.h>
#include <stdio.h>
int main(void) {
struct dirent dir; dir.d_namlen = 0;
printf("%d", (int) dir.d_namlen);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags
----------
----------------------------------------
checking for struct dirent.d_type
----------------------------------------
checking for sysconf(_SC_NPROCESSORS_ONLN)
----------------------------------------
checking for sysconf(_SC_LEVEL1_DCACHE_LINESIZE)
----------------------------------------
checking for openat(), fstatat()
----------------------------------------
checking for getaddrinfo()
----------------------------------------
checking for PCRE2 library
objs/autotest.c:5:36: fatal error: pcre2.h: No such file or directory
5 | #include <pcre2.h>
| ^~~~~~~~~
compilation terminated.
----------
#include <sys/types.h>
#include <unistd.h>
#define PCRE2_CODE_UNIT_WIDTH 8
#include <pcre2.h>
int main(void) {
pcre2_code *re;
re = pcre2_compile(NULL, 0, 0, NULL, NULL, NULL);
if (re == NULL) return 1;
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags -lpcre2-8
----------
----------------------------------------
checking for PCRE library
----------------------------------------
checking for PCRE JIT support
----------------------------------------
checking for OpenSSL library
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_lib.cc.o):(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::ECKeyShare::~ECKeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:41: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519KeyShare::~X25519KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:138: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519Kyber768KeyShare::~X25519Kyber768KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:194: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::SSLKeyShare::~SSLKeyShare()':
/root/boringssl/ssl/internal.h:1082: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x18): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x30): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro._ZTIN4bssl11SSLKeyShareE[_ZTIN4bssl11SSLKeyShareE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
#include <openssl/ssl.h>
int main(void) {
SSL_CTX_set_options(NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags -lssl -lcrypto
----------
----------------------------------------
checking for OpenSSL library in /usr/local/
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_lib.cc.o):(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::ECKeyShare::~ECKeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:41: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519KeyShare::~X25519KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:138: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519Kyber768KeyShare::~X25519Kyber768KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:194: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::SSLKeyShare::~SSLKeyShare()':
/root/boringssl/ssl/internal.h:1082: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x18): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x30): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro._ZTIN4bssl11SSLKeyShareE[_ZTIN4bssl11SSLKeyShareE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
#include <openssl/ssl.h>
int main(void) {
SSL_CTX_set_options(NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/local/include -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags -L/usr/local/lib -lssl -lcrypto
----------
----------------------------------------
checking for OpenSSL library in /usr/pkg/
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_lib.cc.o):(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::ECKeyShare::~ECKeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:41: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519KeyShare::~X25519KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:138: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519Kyber768KeyShare::~X25519Kyber768KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:194: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::SSLKeyShare::~SSLKeyShare()':
/root/boringssl/ssl/internal.h:1082: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x18): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x30): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro._ZTIN4bssl11SSLKeyShareE[_ZTIN4bssl11SSLKeyShareE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
#include <openssl/ssl.h>
int main(void) {
SSL_CTX_set_options(NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /usr/pkg/include -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags -L/usr/pkg/lib -lssl -lcrypto
----------
----------------------------------------
checking for OpenSSL library in /opt/local/
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_lib.cc.o):(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::ECKeyShare::~ECKeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:41: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519KeyShare::~X25519KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:138: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::(anonymous namespace)::X25519Kyber768KeyShare::~X25519Kyber768KeyShare()':
/root/boringssl/ssl/ssl_key_share.cc:194: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o): in function `bssl::SSLKeyShare::~SSLKeyShare()':
/root/boringssl/ssl/internal.h:1082: undefined reference to `operator delete(void*, unsigned long)'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x18): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro+0x30): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
/usr/bin/ld: /root/boringssl/build/ssl/libssl.a(ssl_key_share.cc.o):(.data.rel.ro._ZTIN4bssl11SSLKeyShareE[_ZTIN4bssl11SSLKeyShareE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
collect2: error: ld returned 1 exit status
----------
#include <sys/types.h>
#include <unistd.h>
#include <openssl/ssl.h>
int main(void) {
SSL_CTX_set_options(NULL, 0);
return 0;
}
----------
cc -I/root/boringssl/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -I /opt/local/include -o objs/autotest objs/autotest.c -L/root/boringssl/build/ssl -L/root/boringssl/build/crypto -Wl,-rpath=/root/boringssl/build/ssl -Wl,-rpath=/root/boringssl/build/crypto -Wl,--enable-new-dtags -L/opt/local/lib -lssl -lcrypto
----------
More information about the nginx
mailing list