Trying to compile from source newest apache with newest openssl - undefined reference to symbol 'dlclose@@GLIBC_2.2.5'

12,612

Fixed it, though I'm not sure exactly what the problem was. I changed two things:

First, I installed to a lonely directory (--prefix=/opt/httpd/) next to openssl. I don't think this made a difference, but don't have time to confirm that.

Second, I compiled it with apr and apr-util source code (before I was letting it use copies I got from aptitude--the dev versions). I added apr and apr-util source code to the source tree, and used the --with-included-apr option when I ran apache's ./configure.

Steps to add source code to source tree:

$ tar zxvf httpd-2.4.10.tar.gz
$ cd httpd-2.4.10/srclib/
$ tar zxvf ../../apr-1.5.1.tar.gz
$ ln -s apr-1.5.1/ apr
$ tar zxvf ../../apr-util-1.5.3.tar.gz
$ ln -s apr-util-1.5.3/ apr-util

Command used to configure apache (with other enabled modules omitted for brevity):

$ ./configure \
    --prefix=/opt/httpd \
    --with-included-apr \
    --enable-ssl \
    --with-ssl=/opt/openssl-1.0.1i \
    --enable-ssl-staticlib-deps \
    --enable-mods-static=ssl
Share:
12,612

Related videos on Youtube

AlexMA
Author by

AlexMA

Updated on September 18, 2022

Comments

  • AlexMA
    AlexMA over 1 year

    I need to install apache 2.4.10 using openssl 1.0.1i. I compiled openssl from source with:

    $ ./config \
        --prefix=/opt/openssl-1.0.1i \
        --openssldir=/opt/openssl-1.0.1i
    $ make
    $ sudo make install
    

    and Apache with:

    ./configure --prefix=/etc/apache2 \
         --enable-access_compat=shared \
         --enable-actions=shared \
         --enable-alias=shared \
         --enable-allowmethods=shared \
         --enable-auth_basic=shared \
         --enable-authn_core=shared \
         --enable-authn_file=shared \
         --enable-authz_core=shared \
         --enable-authz_groupfile=shared \
         --enable-authz_host=shared \
         --enable-authz_user=shared \
         --enable-autoindex=shared \
         --enable-dir=shared \
         --enable-env=shared \
         --enable-headers=shared \
         --enable-include=shared \
         --enable-log_config=shared \
         --enable-mime=shared \
         --enable-negotiation=shared \
         --enable-proxy=shared \
         --enable-proxy_http=shared \
         --enable-rewrite=shared \
         --enable-setenvif=shared \
         --enable-ssl=shared \
         --enable-unixd=shared \
         --enable-ssl \
         --with-ssl=/opt/openssl-1.0.1i \
         --enable-ssl-staticlib-deps \
         --enable-mods-static=ssl 
    make 
    (would run sudo make install next but I get an error)
    

    I'm essentially following the guide here except with newer slightly newer versions. My problem is I get a linker error when I run make for apache:

    Making all in support
    make[1]: Entering directory `/home/developer/downloads/httpd-2.4.10/support'
    make[2]: Entering directory `/home/developer/downloads/httpd-2.4.10/support'
    /usr/share/apr-1.0/build/libtool --silent --mode=link x86_64-linux-gnu-gcc -std=gnu99  -pthread   -L/opt/openssl-1.0.1i/lib -lssl -lcrypto  \
                     -o ab  ab.lo        /usr/lib/x86_64-linux-gnu/libaprutil-1.la /usr/lib/x86_64-linux-gnu/libapr-1.la -lm
    /usr/bin/ld: /opt/openssl-1.0.1i/lib/libcrypto.a(dso_dlfcn.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
    

    I tried the answer here, but no luck. I would prefer to just use aptitude, but unfortunately the versions I need aren't available yet. If anyone knows how to fix the linker problem (or what I think is a linker problem), or knows of a better way to tell apache to use a newer openssl, it would be greatly appreciated; I've got apache 1.0.1i working otherwise.

    • Admin
      Admin over 9 years
      why dont use sudo apt-get install openssl apache2 to install them?
    • AlexMA
      AlexMA over 9 years
      "I would prefer to just use aptitude, but unfortunately the versions I need aren't available yet. "
  • Admin
    Admin almost 5 years
    Thanks for following up on this