Apache patch for libexpat.so: could not read symbols: File in wrong format

Geschrieben von Jens Brey am Dienstag, 24. Juli 2007 in Open Source

If you want to compile Apache 2.2.4 under Red Hat AS 5.0 x86-64 you can get this error:

/usr/lib/libexpat.so: could not read symbols: File in wrong format

There is a patch in the ASF Bugzilla (http://issues.apache.org/bugzilla/show_bug.cgi?id=28205 ), but this patch works only up to version 2.2.3. So, i create a new one, which works with 2.2.4 ;-)

Here it is http://blog.chaos-co.de/downloads/apr-util_2.2.4.patch

Unpack your apache with tar, go in the httpd-2.2.4/srclib/apr-util directory and apply it with "patch -p1 < /usr/local/src/apr-util_2.2.4.patch"

The patch updates apu-conf.m4 to build an updated configure that knows what to do with a 64 bit directive. So, once you’ve applied the patch, you should delete the file:

srclib/apr-util/configure

and go back to the root directory of the source distro and delete the configure file there too.

Then, rebuild the configure scripts:

./buildconf

You now have a 64 bit enabled apr-util. To take advantage of it, you need to add this line to the root configure options:

--enable-lib64

Here’s the root configure in full:

./configure --prefix=/usr/local/httpd-2.2.4_php4/ --with-mpm=worker --enable-so --enable-rewrite --enable-status --enable-lib64 --libdir=/usr/lib64

Have fun,

Jens

Links:

Alistair’s cakeBlog
global infinity :: tech blog


6 Kommentare für diesen Eintrag

Ansicht der Kommentare: Linear | Verschachtelt

  • Eric
    Jens,

    Your brilliant. Thank you.
  • Falko
    Danke für den Patch und die Anleitung. Spart mir stundenlanges Suchen ;-)
  • Falko
    Hi Jens,

    hast Du zufällig für den Apache 2.2.6 den Patch auch schon geschrieben? Der will nämlich mit dem alten Patch nicht.

    Danke
  • Jens
    Hi, nein noch nicht. In der letzten Apache Version hat sich auch einiges geändert, so das ich mich da auch erstmal wieder zurecht finden muss... ;-)
  • Arndt
    Looks like this workaround/patch helps with httpd 2.2.6 as well. You get these message from patching though - still it compiles fine afterwards.

    [apr-util]$ patch -p1 < ../../../apr-util_2.2.4.patch
    patching file build/apu-conf.m4
    Hunk #2 FAILED at 75.
    1 out of 2 hunks FAILED -- saving rejects to file build/apu-conf.m4.rej
    patching file build/apu-iconv.m4
    patching file build/dbd.m4
    patching file build/dbm.m4
    Hunk #3 succeeded at 682 (offset 28 lines).
  • Jens
    Hi Arndt, well. It can works, but it must not. It depends on your configure options. The old 2.2.3 patch, on which my patch builds, has not patched all the possible configure options and now, with the 2.2.6 version, there are some more options not patched, because of the rejections. A fast workaround for me was, to go in the directories, where the libexpat message occured and fix the makefiles manually (change paths from lib to lib64).

    Regards, Jens

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt

Suche

Nach Einträgen suchen in Chaos Betrachtungen...:

Das Gesuchte nicht gefunden? Gib einen Kommentar in einem Eintrag ab oder nimm per E-Mail Kontakt auf!