Thanks very much for the help. I tried adding "-R/opt/boringssl/lib" in ld options, so it looked like: --with-ld-opt='-Wl,-R,/opt/GeoIP/lib -R/opt/boringssl/lib -L/opt/GeoIP/lib -L/opt/boringssl/lib' But this gave the same result, probably the above is wrong because I don't really know what I am doing with linker options.

You are correct though, I tried replacing the system libcrypto.so and libssl.so with links to the boringssl ones and that got rid of the issue. So it is just not looking for them in the correct place.

I will have to read up on linker options then hopefully I can get it working properly.

Thanks for pointing me in the right direction.

Dave

Hello!

On Mon, Jun 24, 2024 at 08:06:23AM +0100, Dave Kennard wrote:

This is probably me doing something stupid, but I can't get nginx to run
when built to use boringssl. When trying to run it (nginx -t) I get the
error: undefined symbol: CRYPTO_chacha_20

I think it's just that it isn't loading the boringssl shared libs.

Nginx is configured as follows:

./configure --prefix=/opt/nginx-1.27.1 \
??? --with-pcre={{ tarballs_path }}/pcre2-{{ pcre_version }} \
??? --with-pcre-jit \
??? --without-http_autoindex_module \
??? --without-http_empty_gif_module \
??? --without-http_ssi_module \
??? --with-http_ssl_module \
??? --with-http_v2_module \
??? --with-http_v3_module \
??? --with-ipv6 \
??? --with-http_gzip_static_module \
??? --with-http_realip_module \
??? --add-module=../ngx_http_geoip2_module \
??? --with-http_perl_module --with-perl_modules_path=perl/lib \
??? --with-cc-opt='-I/opt/GeoIP/include -I/opt/boringssl/include' \
??? --with-ld-opt='-Wl,-R,/opt/GeoIP/lib -L/opt/GeoIP/lib
-L/opt/boringssl/lib'

And boringssl:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=1
-DCMAKE_INSTALL_PREFIX=/opt/boringssl-{{ ansible_date_time.date }}

(/opt/boringssl is symlinked to /opt/boringssl-{{ ansible_date_time.date }})

Can anyone suggest what the problem might be?
Options you use suggest that you are building with shared BorinSSL
library installed in a non-default location.  The error you are
seeing is likely a result of loading OpenSSL library from the
default library path instead.

Using "-R/opt/boringssl/lib" in ld options might be the way to go,
similarly to how you already do with the GeoIP library.

Reply via email to