AIX Open Source

 View Only
  • 1.  Can't build iozone on AIX 7.3

    IBM Champion
    Posted Thu February 02, 2023 02:13 PM
    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
    ------------------------------


  • 2.  RE: Can't build iozone on AIX 7.3

    Posted Fri February 03, 2023 06:22 AM

    Hi Mario,

     

    Looks like sighandler_t is Linux specific definition for signal handler and it is defined for gnu libc.

    AIX signal handler is also of same type but it is not defined explicitly as it is not a POSIX requirement.

    But if you can create same definition in a header for AIX then I think it will work.

     

    https://man7.org/linux/man-pages/man2/signal.2.html

     

     

    Thanks,

     

    Sanket Rathi

     






  • 3.  RE: Can't build iozone on AIX 7.3

    IBM Champion
    Posted Fri February 03, 2023 08:56 AM
    Thanks.

    There's an xlc target in the makefile and I see that Perzl is using that. That's another approach. Maybe his binary works.

    http://www.oss4aix.org/download/SPECS/iozone-3-490-1.spec

    Mario

    ------------------------------
    Mario Stargard
    ------------------------------



  • 4.  RE: Can't build iozone on AIX 7.3

    IBM Champion
    Posted Fri February 03, 2023 09:16 AM
    And to answer my own question, it does not. Segfaults on AIX 7.3 when you try to run a test.

    ------------------------------
    Mario Stargard
    ------------------------------



  • 5.  RE: Can't build iozone on AIX 7.3

    IBM Champion
    Posted Fri February 03, 2023 10:07 AM
    And I got it working.

    The Perzl rpm installs 4 binaries, one for each target, in /opt/freeware/bin and creates a symlink in /usr/bin/iozone to the AIX64-LF target. Some testing reveals that the 64bit targets won't work. It looks to me like they sigsegv when trying to set up threads. truss shows the last function __libc_sbrk.

    But the 32bit stuff works just fine AFAIK. So I just changed the symlink in /opt/freeware/bin/iozone to point to iozone_AIX-LF and we're off to the races.

    Fun fun. :-)


    ------------------------------
    Mario Stargard
    ------------------------------