0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
nodejs/tools
Michael Dawson 15bcbf853e build: Updates for AIX npm support - part 1
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:

 - Updates to node-gyp to use node.exp when creating the
   shared library for a native module
 - Fixes to gyp related to copying files as covered in
      https://codereview.chromium.org/1368133002/patch/1/10001
 - Pulling in updated gyp versions to Node and node-gyp
 - Pulling latest libuv

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.

PR-URL: https://github.com/nodejs/node/pull/3114
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-10-23 10:43:02 -04:00
..
configure.d
doc tools: remove leftover license boilerplate 2015-10-06 19:29:19 -07:00
eslint tools: update eslint to 0.24.0 2015-06-29 19:02:17 +02:00
eslint-rules test: make common.js mandatory via linting rule 2015-10-06 15:11:58 -07:00
gyp tools: fix gyp to work on MacOSX without XCode 2015-06-30 13:40:40 +02:00
icu build: intl: avoid 'duplicate main()' on ICU 56 2015-10-06 14:34:12 -04:00
msvs win,msi: fix documentation shortcut url 2015-09-10 00:34:07 -04:00
osx-pkg.pmdoc build: fix .pkg creation tooling 2015-09-06 21:38:09 +10:00
pkgsrc
rpm node: additional cleanup for node rename 2015-08-23 17:59:43 -04:00
v8-prof tools: single, cross-platform tick processor 2015-09-18 02:20:25 +02:00
certdata.txt tools: update certdata.txt 2015-06-02 19:27:49 +02:00
check-imports.sh tools: add license boilerplate to check-imports.sh 2015-08-23 08:55:12 -07:00
cpplint.py cpplint: make it possible to run outside git repo 2015-09-06 09:28:42 +02:00
create_expfile.sh build: Updates for AIX npm support - part 1 2015-10-23 10:43:02 -04:00
genv8constants.py
getnodeversion.py
gyp_node.py
install.py build: Updates for AIX npm support - part 1 2015-10-23 10:43:02 -04:00
js2c.py build: Updates to enable AIX support 2015-09-15 13:17:28 -04:00
license2rtf.js
lsan_suppressions.txt build: add --enable-asan with builtin leakcheck 2015-09-06 21:38:00 +10:00
Makefile
mk-ca-bundle.pl tools: customize mk-ca-bundle.pl 2015-06-02 19:27:47 +02:00
osx-codesign.sh build: update build targets for io.js 2015-06-25 15:22:27 +10:00
osx-pkg-postinstall.sh
osx-productsign.sh build: update build targets for io.js 2015-06-25 15:22:27 +10:00
release.sh tools: update release.sh to work with new website 2015-09-01 08:47:59 -04:00
run-valgrind.py
specialize_node_d.py
test-npm.sh tools: ensure npm always uses the local node 2015-10-22 13:50:00 -04:00
test.py test: report timeout in TapReporter 2015-10-07 22:26:04 +11:00
update-authors.sh doc: make tools/update-authors.sh cross-platform 2015-03-11 13:25:17 +01:00
utils.py build: Updates to enable AIX support 2015-09-15 13:17:28 -04:00