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

Fabiano Furtado Pessoa Coelho fusca14 at gmail.com
Mon Mar 28 23:25:47 UTC 2022


Thank you, Maxim!

It worked!!!! Amazing!!!!

Just one more thing....

I was looking in the source code and found it:
...
auto/cc/gcc:131:if [ ".$ZLIB_OPT" = "." ]; then
auto/cc/gcc:132:    ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
auto/cc/gcc-133-else
auto/cc/gcc:134:    ZLIB_OPT="$ZLIB_OPT $PIPE"
auto/cc/gcc-135-fi
...

Do I need to specify "--with-zlib-opt=-fPIC -O2 -fomit-frame-pointer"
because of these ZLIB_OPT default values?

Thanks in advance.


On Mon, Mar 28, 2022 at 7:07 PM Maxim Dounin wrote:
>
> 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/
> _______________________________________________
> nginx mailing list -- nginx at nginx.org
> To unsubscribe send an email to nginx-leave at nginx.org



More information about the nginx mailing list