Skip to content

build: Updates for AIX npm support - part 1

Rodrigo Muino Tomonari requested to merge github/fork/mhdawson/aix2 into master

This PR is the first step enabling support for native modules for AIX. The main issue is that unlike linux where all symbols within the Node executable are available to the shared library for a native module (npm), on AIX the symbols must be explicitly exported. In addition, when the shared library is built it must be linked using a list of the available symbols.

This patch covers the changes need to:

  1. Export the symbols when building the node executable
  2. Generate the file listing the symbols that can be used when building the shared library.

For AIX, it breaks the build process into 2 steps. The first builds a static library and then generates a node.exp file which contains the symbols from that library. The second builds the node executable and uses the node.exp file to specify which symbols should be exported. In addition, it save the node.exp file so that it can later be used in the creation of the shared library when building a native module.

The following additional steps will be required in dependent projects to fully enable AIX for native modules and are being worked separately:

These changes were done to minimize the change to other platforms by working within the existing structure to add the 2 step process for AIX without changing the process for other platforms.

Merge request reports

Loading