mirror of
https://github.com/nodejs/node.git
synced 2024-11-29 15:06:33 +01:00
1657f12f75
Addon tests were still starting to run before the node exp file creation was complete. - remove process_outputs_as_sources as it did not fix the problem - update create_expfile.sh so that exp file is created in a temporary file and then renamed to final name so that file is only visible once it is complete - update target used in building Addons so that for AIX it depends on the exp file being available PR-URL: https://github.com/nodejs/node/pull/8285 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Myles Borins <myles.borins@gmail.com>
51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# This script writes out all the exported symbols to a file
|
|
# AIX needs this as sybmols are not exported by an
|
|
# executable by default and we need to list
|
|
# them specifically in order to export them
|
|
# so that they can be used by native add-ons
|
|
#
|
|
# The raw symbol data is objtained by using nm on
|
|
# the .a files which make up the node executable
|
|
#
|
|
# -Xany makes sure we get symbols on both
|
|
# 32 bit and 64 bit as by default we'd only get those
|
|
# for 32 bit
|
|
#
|
|
# -g selects only exported symbols
|
|
#
|
|
# -C, -B and -p ensure the output is in a format we
|
|
# can easily parse and convert into the symbol we need
|
|
#
|
|
# -C suppresses the demangling of C++ names
|
|
# -B gives us output in BSD format
|
|
# -p displays the info in a standard portable output format
|
|
#
|
|
# We only include symbols if they are of the
|
|
# following types and don't start with a dot.
|
|
#
|
|
# T - Global text symbol
|
|
# D - Global data symbol
|
|
# B - Gobal bss symbol.
|
|
#
|
|
# the final sort allows us to remove any duplicates
|
|
#
|
|
# We need to exclude gtest libraries as they are not
|
|
# linked into the node executable
|
|
#
|
|
echo "Searching $1 to write out expfile to $2"
|
|
|
|
# this special sequence must be at the start of the exp file
|
|
echo "#!." > $2.tmp
|
|
|
|
# pull the symbols from the .a files
|
|
find $1 -name "*.a" | grep -v gtest \
|
|
| xargs nm -Xany -BCpg \
|
|
| awk '{
|
|
if ((($2 == "T") || ($2 == "D") || ($2 == "B")) &&
|
|
(substr($3,1,1) != ".")) { print $3 }
|
|
}' \
|
|
| sort -u >> $2.tmp
|
|
|
|
mv -f $2.tmp $2
|