AIX Build
Was reading the documentation and it says grief builds on AIX, so I thought I'd give it a try. I'm using AIX 7.2. I use the AIX Toolbox utilities including GNU gcc and related GNU build tools.
Tried running auto/configure. Got the error: configure: error: cannot find sources (include/edheaders.h) in auto or ..
Ended up having to run support/config_withncurses instead.
First error I hit was in edendian.h. Error message was: In file included from bsd_endian.h:30, from bsd_cdbr.c:54: /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/include/edendian.h:104:2: error: #error BYTE_ORDER and HIST_XXX_ENDIAN differ ... #error BYTE_ORDER and HIST_XXX_ENDIAN differ ... ^~~~~
I don't see a place where HOST_BIG__ENDIAN is set in the grief code and I don't see it set in the AIX include files either. Worked around that.
Next error I hit was:
charseticonv.c: In function 'dlmod_error': charseticonv.c:691:28: error: 'L_GETMESSAGE' undeclared (first use in this function); did you mean 'L_GETMESSAGES'? if ((n = loadquery(L_GETMESSAGE, msgs, sizeof(msgs))) > 0) { ^~~~~~~~~~~~ L_GETMESSAGES charseticonv.c:691:28: note: each undeclared identifier is reported only once for each function it appears in charseticonv.c:694:19: warning: implicit declaration of function 'strpush'; did you mean 'r_push'? [-Wimplicit-function-declaration] len = strpush(0, buffer, "dlopen: "); ^~~~~~~ r_push
I commented out the AIX specific loadquery related code and it compiled.
Hit the following error message: libtool --mode=compile gcc -DMODULE_LOADABLE --param max-inline-insns-single=1200 -pthread -O1 -DNDEBUG -I. -I/home/michaelsl/opt/src/grief/aix32/tmp/grief-master/include -DHAVE_CONFIG_H -o /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/objects.gcc/release/libchartable/cxCP932.lo -c cnvtables/cxCP932.c /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/libtool: line 900: print: command not found /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/libtool: line 900: print: command not found /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/libtool: line 971: print: command not found /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/libtool: line 973: print: command not found /home/michaelsl/opt/src/grief/aix32/tmp/grief-master/libtool: line 907: print: command not found make[3]: *** [Makefile:215: cxCP932.lo] Error 1
Not sure how to proceed from there.
Would be nice to get this running on AIX, but I'm not having much luck so far.
I did get the latest grief code to build using an older version of MinGW from mingw.org on Windows. However, I did have to make some modifications to the code to get it to compile. It didn't work out of the box. I think the biggest issue for MinGW was that a lot of the code in libw32 checks for _MSC_VER or WATCOMC. MinGW doesn't set _MSC_VER and it's not Watcom, so it doesn't include that code. Defined a dummy _MSV_VER as a work-around, but there are some areas where that doesn't work and I have to #undef _MSC_VER again.
Just wanted to let you know my results trying to build the latest version of grief on a few platforms.
It has been several years since Ive had access to a AIX host; are you aware of any public build hosts/farms? Windows MSVC, OWC, Cygwin and now MingW32/64 targets build; see github actions.
edendian.h: HOST_BIG__ENDIAN. should be HOST_BIG_ENDIAN
Mingw32/64 builds are now integrated; see workflows ./configure upgrades plus improved INSTALL notes; more are staged.
several endian portability improvements