LLVM build problem

Checking out LLVM from svn and building, I get:

llvm[2]: Linking Release executable ModuleMaker (without symbols)
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMX86.o(.eh_frame); no .eh_fr
ame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMInterpreter.o(.eh_frame); n
o .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMExecutionEngine.o(.eh_frame
); no .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMJIT.o(.eh_frame); no .eh_fr
ame_hdr table will be created.

Configured with:

./configure \
--disable-static \
--enable-assertions \
--enable-debug-runtime \
--enable-jit \
--enable-optimized \
--enable-shared \
--enable-targets=host-only \
--with-pic \
--enable-pic \
--disable-binding

Host is x86_64-unknown-linux-gnu

gcc --version

gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8)

OS: Fedora release 9 (Sulphur)

Any suggestions?

Thanks,
Andrew.

Hi Andrew,

Checking out LLVM from svn and building, I get:

llvm[2]: Linking Release executable ModuleMaker (without symbols)
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMX86.o(.eh_frame); no .eh_fr
ame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMInterpreter.o(.eh_frame); n
o .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMExecutionEngine.o(.eh_frame
); no .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMJIT.o(.eh_frame); no .eh_fr
ame_hdr table will be created.

this looks like a bug in gcc: it has created an invalid exception handling frame.
I've seen this before, but not while compiling LLVM.

Configured with:

./configure \
--disable-static \
--enable-assertions \
--enable-debug-runtime \
--enable-jit \
--enable-optimized \
--enable-shared \
--enable-targets=host-only \
--with-pic \
--enable-pic \
--disable-binding

Host is x86_64-unknown-linux-gnu

Does it work if you configure with: ./configure
?

Best wishes,

Duncan.

Duncan Sands wrote:

Hi Andrew,

Checking out LLVM from svn and building, I get:

llvm[2]: Linking Release executable ModuleMaker (without symbols)
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMX86.o(.eh_frame); no .eh_fr
ame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMInterpreter.o(.eh_frame); n
o .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMExecutionEngine.o(.eh_frame
); no .eh_frame_hdr table will be created.
/usr/bin/ld: error in /home/aph/llvm/Release/lib/LLVMJIT.o(.eh_frame); no .eh_fr
ame_hdr table will be created.

this looks like a bug in gcc: it has created an invalid exception handling frame.
I've seen this before, but not while compiling LLVM.

Hmm. It is "ld -r" that seems to be doing this.
If I use the sub-objects on their own I don't get any warning.

I've submitted this to RH bugzilla as 458950 – Corrupt eh_frame_hdr in LLVM

Andrew.