HP-UX HB v13.00 Ch-11 - Software Development

HP-UX Handbook Rev 13.00 Page 70 (of 101)
Chapter 11 Software Development
October 29, 2013
/usr/ccs/bin/ld: Unsatisfied symbols:
Iostream_init::~Iostream_init() (first referenced in x.o) (code)
Iostream_init::Iostream_init()%1 (first referenced in x.o) (code)
:
This is the inverse case. There was at least one object compiled without -AA, but it was linked
with this option. Again, make sure that either -AA is always used, or never. Mixing both is not
supported and will not work, because different runtime libraries are needed and they are not
compatible. Most probably changes to the source code become necessary when switching from
non-ANSI to ANSI mode and vice versa.
/usr/ccs/bin/ld: Unsatisfied symbols:
operator new(unsigned int,void*) (code)
operator new(unsigned int) (code)
This can happen when linking an aC++ program on HP-UX 11.X with objects compiled on UX
10.20. It is not supported to link both 10.X and 11.X objects. To resolve this everything must be
recompiled on 11.X.
Mismatched ABI
The following error messages have all the same root cause:
/usr/ccs/bin/ld: /usr/lib/pa20_64/libcl.sl: Mismatched ABI. 64-bit PA
shared library found in 32-bit link.
ld: Mismatched ABI (not an ELF file) for /somepath/libmylib.sl
ld: Mismatched ABI (not an ELF file) for x.o
/usr/ccs/bin/ld: x.o: Mismatched ABI. 64-bit PA object file found in
32-bit link.
The linker finds both 32-bit and 64-bit objects or shared libraries while linking an executable.
This is not supported and does not work. Make sure that the objects and shared libraries are
either ALL 32-bit or ALL 64-bit. The linker picks the first object from the command line and
uses its type to determine if the executable should be 32-bit or 64-bit. On the first object or
shared library that is not of the same type, ld reports an error like above.
Similar messages will occur when mixing PA-RISC and Itanium objects and/or libraries. This is
of course also not supported. Sometimes the root cause of this might be incorrect include paths,
e.g. when migrating from PA-RISC to Itanium, but not changing include paths from the PA-
RISC to the Itanium versions of libs to be linked.