[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Still trying to get g++ and helloworld.c to work



Jim Pick <jim@jimpick.com> writes:

> I'll recompile egcs, and tell you all if it worked.

Well, at least I can get my "helloworld.c" to compile with g++.  So I
think I fixed the "exception virtual table" problem.

$ g++ helloworld.c -lpthread

(no errors)

But...

$ ./a.out 
BUG IN DYNAMIC LINKER ld.so: ../sysdeps/arm/dl-machine.h: 450: elf_machine_rel: Assertion `! "unexpected dynamic reloc type"' failed!

What the heck is that?

$ LD_DEBUG="bindings" ./a.out
   .
   .
 (lots of debug output)
   .
   .
17844:  binding file /lib/libm.so.6 to /lib/libm.so.6: symbol `__exp_deltatable'
17844:  binding file /lib/libm.so.6 to /lib/libc.so.6: symbol `stderr'
17844:  binding file /lib/libm.so.6 to /lib/libm.so.6: symbol `signgam'
17844:  binding file /usr/lib/libstdc++-libc6.1-1.so.2 to /lib/libpthread.so.0: symbol `_IO_flockfile'
BUG IN DYNAMIC LINKER ld.so: ../sysdeps/arm/dl-machine.h: 450: elf_machine_rel: Assertion `! "unexpected dynamic reloc type"' failed!

$ objdump --dynamic-reloc /lib/libpthread.so.0 | grep flock

(nothing)

$ objdump --dynamic-syms /lib/libpthread.so.0 | grep flock
000081ec g    DF .text  00000018 __flockfile
000081ec g    DF .text  00000018 _IO_flockfile
000081ec  w   DF .text  00000018 flockfile

Actually, that symbol appears to be the first symbol out of
/usr/lib/libstdc++-libc6.1-1.so.2 that it attempted to bind.

At this point, I'm a bit confused.

$ objdump --dynamic-reloc --demangle /usr/lib/libstdc++-libc6.1-1.so.2 | grep flock
00018dc8 R_ARM_PC24        _IO_flockfile
00018f6c R_ARM_PC24        _IO_flockfile
0001cc54 R_ARM_PC24        _IO_flockfile
  .
  .
  .
 and so on

I'm guessing that we don't want R_ARM_PC24, right?

Any idea on how I might have ended up with those?

Cheers,

 - Jim


Reply to: