From 1996a0a3d69994922e4b0b1065898c2518a240a9 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Thu, 14 Apr 2011 09:39:55 -0700 Subject: [PATCH] 32-bit shared libraries on i386 only (SourceForge bug 3286178) --- src/p_lx_elf.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index 6ff7aa8a..896c7c69 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -1313,7 +1313,12 @@ bool PackLinuxElf32::canPack() // into good positions when building the original shared library, // and also requires ld-linux to behave. + // Apparently glibc-2.13.90 insists on 0==e_ident[EI_PAD..15], + // so compressing shared libraries may be doomed anyway. + if (elf_find_dynamic(Elf32_Dyn::DT_INIT)) { + if (this->e_machine!=Elf32_Ehdr::EM_386) + goto abandon; // need stub: EM_ARM EM_MIPS EM_PPC if (elf_has_dynamic(Elf32_Dyn::DT_TEXTREL)) goto abandon; Elf32_Shdr const *shdr = shdri;