Parent document is top of "comp.sys.hp.hpux FAQ"
Previous document is "8. COMPILERS AND LINKERS"
Next document is "8.2 Where is regcmp on HP-UX?"
8.1 What's a P-FIXUP error?
Several questions in comp.sys.hp.hpux have involved the Gnu C compiler
and the linker message below :
gcc test_h.o -o test_h ../libg++.a -lm
ld: R_DATA_ONE_SYMBOL fixup in file ../libg++.a(streambuf.o) for code unsat
symbol "abort" - use P' fixup
collect: /bin/ld returned 1 exit status
This is caused by the code generator emitting assembly code in a data
subspace to initialize a function pointer, equivalent to :
.word foo
where (in this case) foo() is an extern, and shared libraries are referenced
by the executable being built (usually libc.sl).
NOTE:
This problem has been fixed in gcc-2.4.5.u5; if people are still running
into this error, then:
1) They've got an old version of gas (pa-gas-1.36.u8 I believe is the
first one do handle this correctly).
2) They're linking with a library built with some old combination of
gcc and gas.
The solution is to make sure gcc and gas are up-to-date and any libraries
have been built with the latest gcc/gas combination. For a temporary
workaround the option "-static" to gcc will suppress dynamic linking and
thus avoids the error.
(thanks to Carl Burch, HP for the original, and Jeff Law
<law@snake.cs.utah.edu> for the followup)
Parent document is top of "comp.sys.hp.hpux FAQ"
Previous document is "8. COMPILERS AND LINKERS"
Next document is "8.2 Where is regcmp on HP-UX?"