undefined symbol: CRYPTO_chacha_20 when built with boringssl

Dave Kennard showerheadsuk at hotmail.com
Tue Jun 25 14:49:21 UTC 2024


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://freenginx.org/pipermail/nginx/attachments/20240625/47bd7c83/attachment.htm>


More information about the nginx mailing list