Hi, Jeffrey! The official documentation at http://nginx.org/en/docs/configure.html said: --with-zlib=path sets the path to the sources of the zlib library. The library distribution (version 1.1.3 — 1.2.11) needs to be downloaded from the zlib site and extracted. The rest is done by nginx’s ./configure and make. The library is required for the ngx_http_gzip_module module.
... and I thought the source files directory needed to be untouchable! :) I'm gonna try it tomorrow. Thanks. On Mon, Mar 28, 2022 at 4:45 PM Jeffrey Walton <noloa...@gmail.com> wrote: > > On Mon, Mar 28, 2022 at 3:35 PM 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? > > Rebuild zLib. Use -fPIC when building it. > > zlib is an old makefile-based library. You usually need to patch it > heavily to get it to honor CPPFLAGS, CFLAGS and CXXFLAGS. The easiest > thing to do would be open the makefile and just add the flag by hand. > > Here's an example of a zlib patch to generalize the makefile so it > honors user flags: > https://github.com/noloader/Build-Scripts/blob/master/patch/zlib.patch > . > > Jeff > _______________________________________________ > nginx mailing list -- nginx@nginx.org > To unsubscribe send an email to nginx-le...@nginx.org _______________________________________________ nginx mailing list -- nginx@nginx.org To unsubscribe send an email to nginx-le...@nginx.org