Closed rsbeckerca closed 2 years ago
Intersting, Jansson just works for me on HP-UX IA64 with aCC.
Intersting, Jansson just works for me on HP-UX IA64 with aCC.
Definitely different compiler. What can I check to examine this or what information can I provide and how?
One of the first questions is: Is your system supported by GNU autoconf to properly detect the compiler and OS to set right flags?
One of the first questions is: Is your system supported by GNU autoconf to properly detect the compiler and OS to set right flags?
Autoconf gets the compiler and OS correct, but the flags are not always correct. In any event, the platforms are BigEndian even though one is x86 - done in millicode. A sample build line is:
/bin/sh ../libtool --tag=CC --mode=compile c99 -DHAVE_CONFIG_H -I. -I.. -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -g -c -o utf.lo utf.c
c99 -DHAVE_CONFIG_H -I. -I.. -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1 -g -c utf.c -o utf.o
buffer[0] = 0xC0 + ((codepoint & 0x7C0) >> 6);
^
"/home/randall/jansson/src/utf.c", line 18: warning(1506): implicit conversion
from "int" to "char": rounding, sign extension, or loss of accuracy
may result
I am somewhat concerned about the particular type of warning above that looks potentially endian-specific.
I had these with other software which did not properly detect that HP-UX is BE. I fixed many, e.g., git and sha1collision. I guess you need to take care of that yourself.
I had these with other software which did not properly detect that HP-UX is BE. I fixed many, e.g., git and sha1collision. I guess you need to take care of that yourself.
How does the code, in general, know to do BE vs. LE? Is there an extra verbose mode for testing that will show where the failures actually are so I can plug away at it?
The API failure is a result of the DLL export not working. configure assumes gcc compatible flags.
@michael-o Do you know how to inject -Weld=-export_all
into the LDFLAGS for shared libraries. I'm specifying CC=c99
on the configure environment, so need to tell this configure script how to do that and accept the alternate flags.
Standard GNU autoconf: CFLAGS, LDFLAGS and CPPFLAGS, CC, CXX env vars. But if the Makefile does not obey them you are busted.
Standard GNU autoconf: CFLAGS, LDFLAGS and CPPFLAGS, CC, CXX env vars. But if the Makefile does not obey them you are busted.
This is more for the specific link of the .so
file, not the individual compiles. None of those flags apply. I need to convince configure that the platform supports shared libraries but it seems to assume the -PIC
and -share
flags.
Standard GNU autoconf: CFLAGS, LDFLAGS and CPPFLAGS, CC, CXX env vars. But if the Makefile does not obey them you are busted.
This is more for the specific link of the
.so
file, not the individual compiles. None of those flags apply. I need to convince configure that the platform supports shared libraries but it seems to assume the-PIC
and-share
flags.
This still confuses me. Let me double check tomorrow what autoconf does on HP-UX.
This test only checks that correct symbols are exported in the shared object. Output of nm
is probably just different on your system than what the test expects.
I am building using c99 on HPE NonStop ia64 and x86. Test suite is failing as follows. Let me know what more information I can supply for diagnosis. Also, the -shared option is wrong on this platform. We need
-Wshared
and someLDFLAGS
for export options.