Has anybody else gotten anywhere on this? Our security folks won't let me access Perzl's stuff, so I need to build this myself.
The head of the output on the AIX build attempt (AIX 7.3 with xlC 16.1):
Building iozone for AIX
cc -c -O -D__AIX__ -D_NO_PROTO -Dunix -DHAVE_ANSIC_C \
-DNAME='"AIX"' -DSHARED_MEM iozone.c -o iozone_AIX.o
"iozone.c", line 1040.1: 1506-166 (S) Definition of function sighandler_t requires parentheses.
"iozone.c", line 1040.14: 1506-276 (S) Syntax error: possible missing '{'?
"iozone.c", line 1450.25: 1506-045 (S) Undeclared identifier write_perf_test.
"iozone.c", line 1452.25: 1506-045 (S) Undeclared identifier random_perf_test.
"iozone.c", line 1453.25: 1506-045 (S) Undeclared identifier reverse_perf_test.
"iozone.c", line 1454.25: 1506-045 (S) Undeclared identifier rewriterec_perf_test.
"iozone.c", line 1455.25: 1506-045 (S) Undeclared identifier read_stride_perf_test.
"iozone.c", line 1456.25: 1506-045 (S) Undeclared identifier fwrite_perf_test.
"iozone.c", line 1457.25: 1506-045 (S) Undeclared identifier fread_perf_test.
...
There's a lot more. I'm only good enough at C to ruin stuff, but seems like a syntax error in the source is cascading through the rest of the compile. But this project is more complicated than my skills allow me to troubleshoot.
This attempting to build the current iozone 3.506 version.
The AIX64 gcc target complains about missing string.h. Adding an include for that at the top of iozone.c cleans up those messages and leaves us with this bit of explody aournd the sighandler_t functions:
Building iozone for AIX64
/opt/freeware/bin/gcc -maix64 -c -O3 -D__AIX__ -D_NO_PROTO -Dunix -DHAVE_ANSIC_C \
-DASYNC_IO -DNAME='"AIX64"' -DSHARED_MEM \
iozone.c -o iozone_AIX64.o
iozone.c:1042:1: error: unknown type name 'sighandler_t'; did you mean 'rsethandle_t'?
1042 | sighandler_t signal_handler(void); /* clean up if user interrupts us */
| ^~~~~~~~~~~~
| rsethandle_t
iozone.c: In function 'main':
iozone.c:1937:28: error: 'sighandler_t' undeclared (first use in this function); did you mean 'rsethandle_t'?
1937 | signal((int) SIGINT, (sighandler_t) signal_handler); /* handle user interrupt */
| ^~~~~~~~~~~~
| rsethandle_t
...
------------------------------
Andrew Scott
------------------------------
Original Message:
Sent: Thu February 02, 2023 02:12 PM
From: Mario Stargard
Subject: Can't build iozone on AIX 7.3
Has anyone built iozone on AIX recently? I recall this used to build without much fuss, but it's not working for me on AIX 7.3.
Though there is a build target for AIX64-LF that uses gcc, the first error out of the gate is 'signalhandler_t' undeclared which is a pretty standard Linux function.
I must be missing a library. Hoping someone has some notes on building this. I'm using gcc from the toolkit.
Thanks,
Mario
------------------------------
Mario Stargard
------------------------------