Skip to content

Platform support: AIX and Solaris feasibility (Tier 4) #536

@somethingwithproof

Description

@somethingwithproof

Summary

spine has compile-time scaffolding for AIX and Solaris/illumos at Tier 4
(experimental). The build configures and compiles cleanly, but no
runtime verification has been performed because no hardware or CI
runner is available. This issue tracks what would be needed to move
either platform up to Tier 3 (advisory CI) or higher.

See docs/platforms.md, Tier 4 section
for the current support matrix.

Current state

AIX (IBM Power)

  • `CMakeLists.txt` sets `_ALL_SOURCE=1`, `_XOPEN_SOURCE=700`, and
    `-Wl,-brtl` for runtime linking.
  • `src/ping.c` falls back to `/dev/urandom` then `time^pid` for ICMP
    ID generation since AIX lacks `arc4random(3)`.
  • `pipe2(2)` not available; `spine_process_pipe` falls through to the
    POSIX `pipe(2) + FD_CLOEXEC` path.

Solaris / illumos (OpenIndiana, OmniOS, SmartOS)

  • `CMakeLists.txt` sets `_POSIX_PTHREAD_SEMANTICS=1`,
    `_XOPEN_SOURCE=700`, `EXTENSIONS=1`, and links `socket` and
    `nsl`.
  • `src/ping.c` uses `arc4random()` on Solaris 11.4+ and recent
    illumos; older Solaris falls back to `/dev/urandom`.

What's needed to reach Tier 3

For either platform:

  1. Hardware or hosted runner for the build matrix. AIX needs a
    pSeries / Power9+ LPAR; Solaris/illumos needs SPARC or x86 with a
    reachable runner image (e.g., Joyent SmartOS zone, OpenIndiana VM).
  2. Runtime smoke test: `./build/spine --help` plus a single poll
    round against a Cacti instance to verify socket, MySQL, Net-SNMP,
    and signal handling work end-to-end.
  3. `cross-platform-actions/action` does not currently support AIX
    or Solaris, so the existing FreeBSD/NetBSD/OpenBSD CI pattern does
    not extend. A self-hosted runner or sponsored cloud image is
    required.

How to help

  • File a comment on this issue describing your AIX or Solaris/illumos
    environment if you can run periodic builds and report results.
  • PRs adding compile fixes are welcome; tag them `platform:aix` or
    `platform:solaris`.
  • Hardware donations or cloud runner sponsorship for a community CI
    lane would let us promote either platform to Tier 3.

References

  • Tier definitions: docs/platforms.md
  • Compile guards: CMakeLists.txt (search for `AIX` and `SunOS`)
  • Source guards: src/ping.c, src/platform/platform_process_posix.c

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions