can't upgrade from 2.4.54 to 2.4.57

SupermanInNY

Verified User
Joined
Sep 28, 2004
Messages
419
Hi All,

A CentOS 8 - changed to AlmaLinux.
System:
Kernel: 4.18.0-477.13.1.el8_8.x86_64 arch: x86_64 bits: 64 Console: pty pts/0 Distro: AlmaLinux
release 8.8 (Sapphire Caracal)


the build ends with this:

/bin/sh /usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr/libtool --silent --mode=link --tag=CC gcc -pthread -I/usr/local/include -DHAVE_CONFIG_H -DLINUX -D_REENTRANT -D_GNU_SOURCE -I/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util/include -I/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util/include/private -I/usr/include -I/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr/include -version-info 6:3:6 -L/usr/local/lib -o libaprutil-1.la -rpath /usr/lib/apache buckets/apr_brigade.lo buckets/apr_buckets.lo buckets/apr_buckets_alloc.lo buckets/apr_buckets_eos.lo buckets/apr_buckets_file.lo buckets/apr_buckets_flush.lo buckets/apr_buckets_heap.lo buckets/apr_buckets_mmap.lo buckets/apr_buckets_pipe.lo buckets/apr_buckets_pool.lo buckets/apr_buckets_refcount.lo buckets/apr_buckets_simple.lo buckets/apr_buckets_socket.lo crypto/apr_crypto.lo crypto/apr_md4.lo crypto/apr_md5.lo crypto/apr_passwd.lo crypto/apr_sha1.lo crypto/apr_siphash.lo crypto/crypt_blowfish.lo crypto/getuuid.lo crypto/uuid.lo dbd/apr_dbd.lo dbm/apr_dbm.lo dbm/apr_dbm_sdbm.lo dbm/sdbm/sdbm.lo dbm/sdbm/sdbm_hash.lo dbm/sdbm/sdbm_lock.lo dbm/sdbm/sdbm_pair.lo encoding/apr_base64.lo hooks/apr_hooks.lo ldap/apr_ldap_stub.lo ldap/apr_ldap_url.lo memcache/apr_memcache.lo misc/apr_date.lo misc/apr_queue.lo misc/apr_reslist.lo misc/apr_rmm.lo misc/apr_thread_pool.lo misc/apu_dso.lo misc/apu_version.lo redis/apr_redis.lo strmatch/apr_strmatch.lo uri/apr_uri.lo xlate/xlate.lo xml/apr_xml.lo -luuid -lrt -lcrypt -lpthread -ldl -lexpat -liconv -lcrypt /usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr/libapr-1.la -luuid -lrt -lpthread -ldl
/usr/bin/ld: /usr/local/lib/libltdl.a(ltdl.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[3]: *** [/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util/build-outputs.mk:128: dbd/apr_dbd_odbc.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util'
make[2]: *** [/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util/build/rules.mk:119: all-recursive] Error 1
make[2]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.57/srclib/apr-util'
make[1]: *** [/usr/local/directadmin/custombuild/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1
make[1]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.57/srclib'
make: *** [/usr/local/directadmin/custombuild/httpd-2.4.57/build/rules.mk:75: all-recursive] Error 1
*** The make has failed. Exiting...


Any pointers?
 
Hi SupermanInNY,

Did you manage to solve this problem? I have the same issue..

Thanks
 
Humm, possibly a left over from the upgrade? Manually installed old library that the upgrade did not handle? Compile option in system environment? Missing dependency? Those are all possibilities that could generate the error.

I would start checking your libtool/libltdl/bintools, could be the wrong version being referenced for the compiler you have installed.
 
Probably looking for something in /usr/local/lib that it shouldn't be.

While a blanket rename is really not recommended - you should know what you are doing before you do it - try renaming the /usr/local/lib and /usr/local/include folders and doing a recompile:

mv /usr/local/lib /usr/local/lib.old
mv /usr/local/include /usr/local/include.old


Then try rebuilding Apache.

I can't be certain, but I think at one time DirectAdmin compiled a lot of the libraries used for various programs, but they've since switched to using mostly the system provided libraries. But if one of the libraries is found in /usr/local then that takes precedence over the system provided libraries.
 
Hi, I'm facing the same issue.
Cannot upgrade Apache from 2.4.54 to 2.4.58.
Has anyone any suggestion?

Bash:
...
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[3]: *** [/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util/build-outputs.mk:128: dbd/apr_dbd_odbc.la] Error 1
make[3]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util'
make[2]: *** [/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util/build/rules.mk:119: all-recursive] Error 1
make[2]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util'
make[1]: *** [/usr/local/directadmin/custombuild/httpd-2.4.58/build/rules.mk:75: all-recursive] Error 1
make[1]: Leaving directory '/usr/local/directadmin/custombuild/httpd-2.4.58/srclib'
make: *** [/usr/local/directadmin/custombuild/httpd-2.4.58/build/rules.mk:75: all-recursive] Error 1
*** The make has failed. Exiting...
 
Can you check if this would help?
yum install apr-util
or for Debian alikes
apt-get update apt-get install apr-util (if I'm not mistaken)
and then try to upgrade Apache again?
 
Hi Richard,
I try but same problem.

Code:
/usr/bin/ld: /usr/local/lib/libltdl.a(ltdl.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[3]: *** [dbd/apr_dbd_odbc.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.58/srclib/apr-util'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/directadmin/custombuild/httpd-2.4.58/srclib'
make: *** [all-recursive] Error 1
*** The make has failed. Exiting...
 
The issue is the linker is trying to link a dynamic library (libltdl.so) into the binary, but you only have the static version (libtldl.a) in your shared library path. That is a library from libtool and since it is located in /usr/local it was compiled and installed by you (most likely custombuild). You may need to delete libtool from /usr/local on your system and try doing the build all again, so libtool will get reinstalled hopefully as a shared library this time.
 
Hi Tom,
I remove libtool but same problem.
Sorry
You removed all of libloot from /usr/local? If you did, you would definitely not get the same error. A different error is possible but not the same. libdtl.a is also part of libtool, I assume you removed that too? It can’t be removed using gun/rpm/apt/dpkg because it was installed manually initially
 
Doesn't he need to run some command after removing libtool things, like "ldconfig" so things get updated?
 
Ldconfig is used at runtime resolution not compile time. Also, since his library was static it wouldn’t be included in the ldconfig cache.
 
Thanks the guys for your assistance.
I use for tests : yum remove libtool and i try run command after removing

Code:
libtool
Result :
Code:
/usr/bin/libtool: not found

I go in custombuild
Code:
./buid clean and ./build clean all

and
Code:
./build apache

Result :
Same last previous error

I see also 1 warning during compilating :
aclocal: warning: autoconf input should be named 'configure.ac', not 'configure.in'

Version about libtool : libtool.x86_64 0:2.4.2-22.el7_3

thanks
 
As I mentioned, the libtool causing you issues was not installed via yum so, you just removed the system installed version of libtool from /usr not /usr/local. The only way to remove libtool from /usr/local is to find everything associated with libtool and manually removing (rm) them. You would at a very minimum need to do the following:
rm -f /usr/local/lib/libltdl.a
You should also remove all the other libtool generated files, but I don't know exactly which ones they are, since my systems that had installed it in /usr/local have long been upgraded and no longer have a ton of old dev libraries in /usr/local
 
Back
Top