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?"