Hi while compiling executables with stdcxx I ran into the following
warnings during linking with +nostl flag:
ld: (Warning) Unsatisfied symbol "ostream::operator <<(const char *)" in
file /usr/lib/pa20_64/libstd.sl
ld: (Warning) Unsatisfied symbol "Class tables [Vtable] for type
"bad_alloc"" in file /usr/lib/pa20_64/libstd.sl
ld: (Warning) Unsatisfied symbol "Class tables [Vtable] dependent on key
function: "exception::~exception()"" in file /usr/lib/pa20_64/libstd.sl
ld: (Warning) Unsatisfied symbol "typeid<exception>" in file
/usr/lib/pa20_64/libstd.sl
ld: (Warning) Unsatisfied symbol "exception::~exception()" in file
/usr/lib/pa20_64/libstd.sl
ld: (Warning) Unsatisfied symbol "istream::do_ipfx(int)" in file
/usr/lib/pa20_64/libstd.sl
after some research, I found that the compile lines needed +nostl as
well to not include the stl that was shipped with HP-UX compiler. But
doing this I ran into compiler issues such as these:
# aCC +DD64 -D_RWSTD_USE_CONFIG -D_RWCONFIG=11d -I/build/include -AA -g
-DRWDEBUG +nostl +w +W229 +W361 +W392 +W431 +W655 +W684 +W818 +W819
+W849 +W889 +W887 +W921 -D_RWSTDDEBUG -c sizeof.cpp
Error 112: "sizeof.cpp", line 4 # Include file <stdio.h> not found.
#include <stdio.h>
^^^^^^^^^
Error 328: "sizeof.cpp", line 16 # Function 'printf' has not been
defined yet; cannot call.
printf ("/**/\n#undef RW_SIZEOF\n");
^^^^^^
Error 328: "sizeof.cpp", line 44 # Function 'size_t' has not been
defined yet; cannot call.
do_print ( (size_t)(0), "SIZE_T");
^^^^^^
After some searching, this macro seems to be the cause of the error:
_RWSTD_NO_DEPRECATED_C_HEADERS
It is defined in the file include/rw/_config-acc.h. Is there any reason
behind the definition for that macro on HP UX platform or was it simply
being defined because hp compiler ships with a version of stdcxx
library?