summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node.gyp7
-rwxr-xr-xtools/mkssldef.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/node.gyp b/node.gyp
index 88b880d743..9f0645fe42 100644
--- a/node.gyp
+++ b/node.gyp
@@ -370,9 +370,14 @@
'-Wl,--no-whole-archive',
],
}],
+ # openssl.def is based on zlib.def, zlib symbols
+ # are always exported.
['use_openssl_def==1', {
'sources': ['<(SHARED_INTERMEDIATE_DIR)/openssl.def'],
}],
+ ['OS=="win" and use_openssl_def==0', {
+ 'sources': ['deps/zlib/win32/zlib.def'],
+ }],
],
}],
],
@@ -568,6 +573,8 @@
'-X^DSO',
'-X^_',
'-X^private_',
+ # Base generated DEF on zlib.def
+ '-Bdeps/zlib/win32/zlib.def'
],
},
'conditions': [
diff --git a/tools/mkssldef.py b/tools/mkssldef.py
index 8cbdbabd97..8354e5712e 100755
--- a/tools/mkssldef.py
+++ b/tools/mkssldef.py
@@ -7,6 +7,7 @@ import sys
categories = []
defines = []
excludes = []
+bases = []
if __name__ == '__main__':
out = sys.stdout
@@ -18,6 +19,7 @@ if __name__ == '__main__':
elif option.startswith('-C'): categories += option[2:].split(',')
elif option.startswith('-D'): defines += option[2:].split(',')
elif option.startswith('-X'): excludes += option[2:].split(',')
+ elif option.startswith('-B'): bases += option[2:].split(',')
excludes = map(re.compile, excludes)
exported = []
@@ -40,5 +42,12 @@ if __name__ == '__main__':
if not satisfy(meta[3], categories): continue
exported.append(name)
+ for filename in bases:
+ for line in open(filename).readlines():
+ line = line.strip()
+ if line == 'EXPORTS': continue
+ if line[0] == ';': continue
+ exported.append(line)
+
print('EXPORTS', file=out)
for name in sorted(exported): print(' ', name, file=out)