Thanks to a suggestion from Stefan which pointed me in the right direction, I 
eventually tracked down my problem and was able to build successfully.

The problem was that I was using a build machine that was used for a previous 
build where we build a number of different libraries:
expat
pcre
openssl
zlib
apr
apr-util
and httpd

In this case, since my last build many months ago:
expat was unchanged
pcre had updated from 8.42 to 8.43
openssl was being upgraded from 1.0.2 to 1.1.1
zlib was unchanged
apr had updated from 1.6.3 to 1.7.0
apr-util was unchanged
httpd was updated from 2.4.34 to 2.4.39

For versions that were updated, I rebuilt the library. However, for unchanged 
libraries, I just used the original build from X months ago.
This worked fine for expat and zlib which are self contained,
But apr-util links to apr and therefore was linking in apr-1.6.3 and its 
libtool settings were injecting the apr-1.6.3 path into the rpath linker 
settings during the httpd build.

The result was include settings for the httpd build that were pointing at 
apr-1.7.0/include, but linker settings pointing at the original apr-util linked 
apr-1.6.3/lib.

Rebuilding apr-util against apr-1.7.0 sorted out the problem and all is well 
now.

I discovered this by running the failing apr-1.7.0/build-1/libtool command 
using the --verbose option and discovering the following:
COLLECT_GCC_OPTIONS='-std=gnu99' '-g' '-O2' '-pthread' '-o' 'httpd' '-v' 
'-L/myhome/expat-2.2.5/lib' '-L/myhome/pcre-8.43/lib' '-pthread' 
'-mtune=generic'
/usr/libexec/gcc/x86_64-redhat-linux/4.4.7/collect2 --eh-frame-hdr --build-id 
-m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o 
httpd /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crt1.o 
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crti.o 
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtbegin.o -L/myhome/expat-2.2.5/lib 
-L/myhome/pcre-8.43/lib -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 
-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7 
-L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64 -L/lib/../lib64 
-L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../.. modules.o 
buildmark.o --export-dynamic server/.libs/libmain.a 
modules/core/.libs/libmod_so.a modules/http/.libs/libmod_http.a 
server/mpm/worker/.libs/libworker.a os/unix/.libs/libos.a 
/myhome/pcre-8.43/lib/libpcre.so /myhome/apr-util-1.6.1/lib/libaprutil-1.so 
/myhome/apr-1.6.3/lib/libapr-1.so /myhome/expat-2.2.5/lib/libexpat.so 
/myhome/apr-1.7.0/lib/libapr-1.so -luuid -lrt -lcrypt -lpthread -rpath 
/myhome/pcre-8.43/lib -rpath /myhome/apr-util-1.6.1/lib -rpath 
/myhome/apr-1.6.3/lib -rpath /myhome/expat-2.2.5/lib -rpath 
/myhome/apr-1.7.0/lib -rpath /myhome/pcre-8.43/lib -rpath 
/myhome/apr-util-1.6.1/lib -rpath /myhome/apr-1.6.3/lib -rpath 
/myhome/expat-2.2.5/lib -rpath /myhome/apr-1.7.0/lib -lgcc --as-needed -lgcc_s 
--no-as-needed -lpthread -lc -lgcc --as-needed -lgcc_s --no-as-needed 
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/crtend.o 
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../lib64/crtn.o

Steve Bush


From: BUSH Steve [mailto:steven.b...@3ds.com]
Sent: Tuesday, June 04, 2019 2:47 PM
To: dev@apr.apache.org
Subject: Problem compiling httpd-2.4.39 with apr-1.7.0 on Linux RH 6.5

I’m having a problem compiling httpd-2.4.39 on a Linux RH 6.5 system with 
apr-1.7.0, gcc version 4.4.7
However, compiling the same httpd version with apr-1.6.3 works fine.

If this should be sent to the httpd mailing list instead, please let me know.

Given that apachehaus has a download with httpd-2.4.39 and apr-1.7.0 
(https://www.apachehaus.com/cgi-bin/download.plx ) and I can’t find anyone who 
has run into this (httpd Bugzilla, apr Bugzilla, apachelounge, apache httpd 
mailing list archives), it’s likely that I’m doing something incorrect here, 
but I’m stuck at the moment.

I compiled and installed both apr-1.6.3 and apr-1.7.0 using the following 
commands:

./configure --prefix=/myhome/apr-1.6.3
make
make install

./configure --prefix=/myhome/apr-1.7.0
make
make install


I then downloaded and attempted to compile apache using the following commands:
./configure <VARIOUS OPTIONS: modules, openssl, etc.> 
--with-apr=/myhome/apr-1.6.3 --with-apr-util=/myhome/apr-util-1.6.1 
--prefix=/myhome/httpd-2.4.39
make

then with a fresh httpd-2.4.39 folder, I did the following

./configure <VARIOUS OPTIONS: modules, openssl, etc.> 
--with-apr=/myhome/apr-1.7.0 --with-apr-util=/myhome/apr-util-1.6.1 
--prefix=/myhome/httpd-2.4.39
make

In the first case with apr-1.6.3, the httpd-2.4.39 compile successfully 
completes
With apr-1.7.0, however, I run into the following undefined reference errors 
after a little bit:

                <SNIP>
make[2]: Leaving directory `/myhome/dev/httpd-2.4.39/support'
make[1]: Leaving directory `/myhome/dev/httpd-2.4.39/support'
make[1]: Entering directory `/myhome/dev/httpd-2.4.39'
/myhome/apr-1.7.0/build-1/libtool --silent --mode=compile gcc -std=gnu99  -g 
-O2 -pthread      -DLINUX -D_REENTRANT -D_GNU_SOURCE     -I. 
-I/myhome/dev/httpd-2.4.39/os/unix -I/myhome/dev/httpd-2.4.39/include 
-I/myhome/apr-1.7.0/include/apr-1 -I/myhome/apr-util-1.6.1/include/apr-1 
-I/myhome/expat-2.2.5/include -I/myhome/pcre-8.43/include 
-I/myhome/dev/httpd-2.4.39/modules/aaa -I/myhome/dev/httpd-2.4.39/modules/cache 
-I/myhome/dev/httpd-2.4.39/modules/core 
-I/myhome/dev/httpd-2.4.39/modules/database 
-I/myhome/dev/httpd-2.4.39/modules/filters 
-I/myhome/dev/httpd-2.4.39/modules/ldap -I/myhome/dev/httpd-2.4.39/server 
-I/myhome/dev/httpd-2.4.39/modules/loggers 
-I/myhome/dev/httpd-2.4.39/modules/lua -I/myhome/dev/httpd-2.4.39/modules/proxy 
-I/myhome/dev/httpd-2.4.39/modules/http2 
-I/myhome/dev/httpd-2.4.39/modules/session 
-I/myhome/dev/httpd-2.4.39/modules/ssl -I/myhome/dev/httpd-2.4.39/modules/test 
-I/myhome/dev/httpd-2.4.39/server -I/myhome/dev/httpd-2.4.39/modules/md 
-I/myhome/dev/httpd-2.4.39/modules/arch/unix 
-I/myhome/dev/httpd-2.4.39/modules/dav/main 
-I/myhome/dev/httpd-2.4.39/modules/generators 
-I/myhome/dev/httpd-2.4.39/modules/mappers  -prefer-non-pic -static -c 
modules.c && touch modules.lo
gcc -std=gnu99  -g -O2 -pthread      -DLINUX -D_REENTRANT -D_GNU_SOURCE     -I. 
-I/myhome/dev/httpd-2.4.39/os/unix -I/myhome/dev/httpd-2.4.39/include 
-I/myhome/apr-1.7.0/include/apr-1 -I/myhome/apr-util-1.6.1/include/apr-1 
-I/myhome/expat-2.2.5/include -I/myhome/pcre-8.43/include 
-I/myhome/dev/httpd-2.4.39/modules/aaa -I/myhome/dev/httpd-2.4.39/modules/cache 
-I/myhome/dev/httpd-2.4.39/modules/core 
-I/myhome/dev/httpd-2.4.39/modules/database 
-I/myhome/dev/httpd-2.4.39/modules/filters 
-I/myhome/dev/httpd-2.4.39/modules/ldap -I/myhome/dev/httpd-2.4.39/server 
-I/myhome/dev/httpd-2.4.39/modules/loggers 
-I/myhome/dev/httpd-2.4.39/modules/lua -I/myhome/dev/httpd-2.4.39/modules/proxy 
-I/myhome/dev/httpd-2.4.39/modules/http2 
-I/myhome/dev/httpd-2.4.39/modules/session 
-I/myhome/dev/httpd-2.4.39/modules/ssl -I/myhome/dev/httpd-2.4.39/modules/test 
-I/myhome/dev/httpd-2.4.39/server -I/myhome/dev/httpd-2.4.39/modules/md 
-I/myhome/dev/httpd-2.4.39/modules/arch/unix 
-I/myhome/dev/httpd-2.4.39/modules/dav/main 
-I/myhome/dev/httpd-2.4.39/modules/generators 
-I/myhome/dev/httpd-2.4.39/modules/mappers  -c 
/myhome/dev/httpd-2.4.39/server/buildmark.c
/myhome/apr-1.7.0/build-1/libtool --silent --mode=link gcc -std=gnu99  -g -O2 
-pthread      -L/myhome/expat-2.2.5/lib   -o httpd  modules.lo buildmark.o 
-export-dynamic server/libmain.la modules/core/libmod_so.la 
modules/http/libmod_http.la server/mpm/worker/libworker.la os/unix/libos.la 
-L/myhome/pcre-8.43/lib -lpcre    /myhome/apr-util-1.6.1/lib/libaprutil-1.la 
-lexpat /myhome/apr-1.7.0/lib/libapr-1.la -luuid -lrt -lcrypt -lpthread
server/.libs/libmain.a(exports.o):(.data+0x98): undefined reference to 
`apr_atomic_read64'
server/.libs/libmain.a(exports.o):(.data+0xa0): undefined reference to 
`apr_atomic_set64'
server/.libs/libmain.a(exports.o):(.data+0xa8): undefined reference to 
`apr_atomic_add64'
server/.libs/libmain.a(exports.o):(.data+0xb0): undefined reference to 
`apr_atomic_sub64'
server/.libs/libmain.a(exports.o):(.data+0xb8): undefined reference to 
`apr_atomic_inc64'
server/.libs/libmain.a(exports.o):(.data+0xc0): undefined reference to 
`apr_atomic_dec64'
server/.libs/libmain.a(exports.o):(.data+0xc8): undefined reference to 
`apr_atomic_cas64'
server/.libs/libmain.a(exports.o):(.data+0xd0): undefined reference to 
`apr_atomic_xchg64'
server/.libs/libmain.a(exports.o):(.data+0x180): undefined reference to 
`apr_encode_base64'
server/.libs/libmain.a(exports.o):(.data+0x188): undefined reference to 
`apr_encode_base64_binary'
server/.libs/libmain.a(exports.o):(.data+0x190): undefined reference to 
`apr_pencode_base64'
server/.libs/libmain.a(exports.o):(.data+0x198): undefined reference to 
`apr_pencode_base64_binary'
server/.libs/libmain.a(exports.o):(.data+0x1a0): undefined reference to 
`apr_decode_base64'
server/.libs/libmain.a(exports.o):(.data+0x1a8): undefined reference to 
`apr_decode_base64_binary'
server/.libs/libmain.a(exports.o):(.data+0x1b0): undefined reference to 
`apr_pdecode_base64'
server/.libs/libmain.a(exports.o):(.data+0x1b8): undefined reference to 
`apr_pdecode_base64_binary'
server/.libs/libmain.a(exports.o):(.data+0x1c0): undefined reference to 
`apr_encode_base32'
server/.libs/libmain.a(exports.o):(.data+0x1c8): undefined reference to 
`apr_encode_base32_binary'
server/.libs/libmain.a(exports.o):(.data+0x1d0): undefined reference to 
`apr_pencode_base32'
server/.libs/libmain.a(exports.o):(.data+0x1d8): undefined reference to 
`apr_pencode_base32_binary'
server/.libs/libmain.a(exports.o):(.data+0x1e0): undefined reference to 
`apr_decode_base32'
server/.libs/libmain.a(exports.o):(.data+0x1e8): undefined reference to 
`apr_decode_base32_binary'
server/.libs/libmain.a(exports.o):(.data+0x1f0): undefined reference to 
`apr_pdecode_base32'
server/.libs/libmain.a(exports.o):(.data+0x1f8): undefined reference to 
`apr_pdecode_base32_binary'
server/.libs/libmain.a(exports.o):(.data+0x200): undefined reference to 
`apr_encode_base16'
server/.libs/libmain.a(exports.o):(.data+0x208): undefined reference to 
`apr_encode_base16_binary'
server/.libs/libmain.a(exports.o):(.data+0x210): undefined reference to 
`apr_pencode_base16'
server/.libs/libmain.a(exports.o):(.data+0x218): undefined reference to 
`apr_pencode_base16_binary'
server/.libs/libmain.a(exports.o):(.data+0x220): undefined reference to 
`apr_decode_base16'
server/.libs/libmain.a(exports.o):(.data+0x228): undefined reference to 
`apr_decode_base16_binary'
server/.libs/libmain.a(exports.o):(.data+0x230): undefined reference to 
`apr_pdecode_base16'
server/.libs/libmain.a(exports.o):(.data+0x238): undefined reference to 
`apr_pdecode_base16_binary'
server/.libs/libmain.a(exports.o):(.data+0x5c8): undefined reference to 
`apr_global_mutex_timedlock'
server/.libs/libmain.a(exports.o):(.data+0x718): undefined reference to 
`apr_sockaddr_zone_set'
server/.libs/libmain.a(exports.o):(.data+0x720): undefined reference to 
`apr_sockaddr_zone_get'
server/.libs/libmain.a(exports.o):(.data+0xad0): undefined reference to 
`apr_proc_mutex_timedlock'
server/.libs/libmain.a(exports.o):(.data+0xed0): undefined reference to 
`apr_thread_mutex_timedlock'
collect2: ld returned 1 exit status
make[1]: *** [httpd] Error 1
make[1]: Leaving directory `/myhome/dev/httpd-2.4.39'
make: *** [all-recursive] Error 1

Steve Bush

This email and any attachments are intended solely for the use of the 
individual or entity to whom it is addressed and may be confidential and/or 
privileged.

If you are not one of the named recipients or have received this email in error,

(i) you should not read, disclose, or copy it,

(ii) please notify sender of your receipt by reply email and delete this email 
and all attachments,

(iii) Dassault Systèmes does not accept or assume any liability or 
responsibility for any use of or reliance on this email.


Please be informed that your personal data are processed according to our data 
privacy policy as described on our website. Should you have any questions 
related to personal data protection, please contact 3DS Data Protection Officer 
at 3ds.compliance-priv...@3ds.com<mailto:3ds.compliance-priv...@3ds.com>



For other languages, go to https://www.3ds.com/terms/email-disclaimer

This email and any attachments are intended solely for the use of the 
individual or entity to whom it is addressed and may be confidential and/or 
privileged.

If you are not one of the named recipients or have received this email in error,

(i) you should not read, disclose, or copy it,

(ii) please notify sender of your receipt by reply email and delete this email 
and all attachments,

(iii) Dassault Systèmes does not accept or assume any liability or 
responsibility for any use of or reliance on this email.


Please be informed that your personal data are processed according to our data 
privacy policy as described on our website. Should you have any questions 
related to personal data protection, please contact 3DS Data Protection Officer 
at 3ds.compliance-priv...@3ds.com<mailto:3ds.compliance-priv...@3ds.com>


For other languages, go to https://www.3ds.com/terms/email-disclaimer

Reply via email to