NGINX "--with-zlib=..." linker error

Maxim Dounin mdounin at mdounin.ru
Mon Mar 28 22:05:10 UTC 2022


Hello!

On Mon, Mar 28, 2022 at 04:32:05PM -0300, Fabiano Furtado Pessoa Coelho wrote:

> Hi...
> 
> I'm using https://nginx.org/packages/rhel/8/SRPMS/nginx-1.20.2-1.el8.ngx.src.rpm
> to compile NGINX to RHEL 8.5, with "--with-openssl=/openssl_1_1_1n"
> parameter in the "%define BASE_CONFIGURE_ARGS" .SPEC file, and it
> works fine. The NGINX package is compiled without errors.
> 
> Now I want to add the "--with-zlib=/zlib_1_2_12" parameter, to compile
> NGINX with the latest zlib version 1.2.12, and I get these linker
> errors:
> 
> ...
> objs/ngx_modules.o \
> -Wl,-z,relro -Wl,-z,now -pie -ldl -lpthread -lpthread -lcrypt -lpcre
> /openssl_1_1_1n/.openssl/lib/libssl.a
> /openssl_1_1_1n/.openssl/lib/libcrypto.a -ldl -lpthread
> /zlib_1_2_12/libz.a \
> -Wl,-E
> /usr/bin/ld: /zlib_1_2_12/libz.a(deflate.o): relocation R_X86_64_32S
> against symbol `_length_code' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(inflate.o): relocation R_X86_64_32S
> against symbol `zcfree' can not be used when making a PIE object;
> recompile with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(inftrees.o): relocation R_X86_64_32S
> against `.rodata' can not be used when making a PIE object; recompile
> with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(trees.o): relocation R_X86_64_32S
> against symbol `_length_code' can not be used when making a PIE
> object; recompile with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(zutil.o): relocation R_X86_64_32
> against `.rodata.str1.1' can not be used when making a PIE object;
> recompile with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(crc32.o): relocation R_X86_64_32S
> against `.rodata' can not be used when making a PIE object; recompile
> with -fPIC
> /usr/bin/ld: /zlib_1_2_12/libz.a(inffast.o): relocation R_X86_64_32S
> against `.rodata.str1.1' can not be used when making a PIE object;
> recompile with -fPIC
> /usr/bin/ld: final link failed: Nonrepresentable section on output
> collect2: error: ld returned 1 exit status
> ...
> 
> Is there a solution for this linker issue?

Try also adding "--with-zlib-opt=-fPIC" configure argument, should 
help.

-- 
Maxim Dounin
http://mdounin.ru/



More information about the nginx mailing list