Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit b351910

Browse filesBrowse files
joyeecheungaduh95
authored andcommitted
sea: add --build-sea to generate SEA directly with Node.js binary
Instead of relying on a WASM build of postject to perform the injection, add LIEF as dependency and generate the SEA directly from core via a new CLI option --build-sea which takes the SEA config. This simplifies SEA generation for users and makes it easier to debug/maintain the SEA building process. PR-URL: #61167 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
1 parent 957292e commit b351910
Copy full SHA for b351910

40 files changed

+2,041-139Lines changed: 2041 additions & 139 deletions
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎.github/CODEOWNERS‎

Copy file name to clipboardExpand all lines: .github/CODEOWNERS
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,15 @@
153153
/test/parallel/test-runner-* @nodejs/test_runner
154154

155155
# Single Executable Applications
156+
/deps/LIEF @nodejs/single-executable
156157
/deps/postject @nodejs/single-executable
157158
/doc/api/single-executable-applications.md @nodejs/single-executable
158159
/doc/contributing/maintaining/maintaining-single-executable-application-support.md @nodejs/single-executable
159160
/src/node_sea* @nodejs/single-executable
160161
/test/fixtures/postject-copy @nodejs/single-executable
161162
/test/sea @nodejs/single-executable
162163
/tools/dep_updaters/update-postject.sh @nodejs/single-executable
164+
/tools/dep_updaters/update-lief.sh @nodejs/single-executable
163165

164166
# Permission Model
165167
/doc/api/permissions.md @nodejs/security-wg
Collapse file

‎.gitignore‎

Copy file name to clipboardExpand all lines: .gitignore
+2Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@ tools/*/*.i.tmp
145145
# Ignore dependencies fetched by tools/v8/fetch_deps.py
146146
/deps/.cipd
147147
!deps/LIEF/**
148+
deps/LIEF/*.vcxproj*
149+
deps/LIEF/*.sln
148150

149151
# === Rules for Windows vcbuild.bat ===
150152
/temp-vcbuild
Collapse file

‎LICENSE‎

Copy file name to clipboardExpand all lines: LICENSE
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1254,7 +1254,8 @@ The externally maintained libraries used by Node.js are:
12541254
SOFTWARE.
12551255
"""
12561256

1257-
- postject, located at test/fixtures/postject-copy, is licensed as follows:
1257+
- postject, located at test/fixtures/postject-copy and used as a basis for
1258+
src/node_sea_bin.cc, is licensed as follows:
12581259
"""
12591260
Postject is licensed for use as follows:
12601261

Collapse file

‎configure.py‎

Copy file name to clipboardExpand all lines: configure.py
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -907,6 +907,12 @@
907907
default=None,
908908
help='do not install the bundled Amaro (TypeScript utils)')
909909

910+
parser.add_argument('--without-lief',
911+
action='store_true',
912+
dest='without_lief',
913+
default=None,
914+
help='build without LIEF (Library for instrumenting executable formats)')
915+
910916
parser.add_argument('--without-npm',
911917
action='store_true',
912918
dest='without_npm',
@@ -1782,6 +1788,14 @@ def configure_node(o):
17821788
o['variables']['single_executable_application'] = b(not options.disable_single_executable_application)
17831789
if options.disable_single_executable_application:
17841790
o['defines'] += ['DISABLE_SINGLE_EXECUTABLE_APPLICATION']
1791+
o['variables']['node_use_lief'] = 'false'
1792+
else:
1793+
if (options.without_lief is not None):
1794+
o['variables']['node_use_lief'] = b(not options.without_lief)
1795+
elif flavor in ('mac', 'linux', 'win'):
1796+
o['variables']['node_use_lief'] = 'true'
1797+
else:
1798+
o['variables']['node_use_lief'] = 'false'
17851799

17861800
o['variables']['node_with_ltcg'] = b(options.with_ltcg)
17871801
if flavor != 'win' and options.with_ltcg:

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.