Title: SEA building in a Linux arm64 docker container can corrupt the .gnu.hash section of the binary · Issue #61483 · nodejs/node · GitHub
Open Graph Title: SEA building in a Linux arm64 docker container can corrupt the .gnu.hash section of the binary · Issue #61483 · nodejs/node
X Title: SEA building in a Linux arm64 docker container can corrupt the .gnu.hash section of the binary · Issue #61483 · nodejs/node
Description: Noticed in #59582, I can only reproduce it locally using docker. The Node.js devcontainer image is enough to reproduce this when run on an arm64 host: docker pull nodejs/devcontainer:nightly docker run -it nodejs/devcontainer:nightly In ...
Open Graph Description: Noticed in #59582, I can only reproduce it locally using docker. The Node.js devcontainer image is enough to reproduce this when run on an arm64 host: docker pull nodejs/devcontainer:nightly docker...
X Description: Noticed in #59582, I can only reproduce it locally using docker. The Node.js devcontainer image is enough to reproduce this when run on an arm64 host: docker pull nodejs/devcontainer:nightly docker...
Opengraph URL: https://github.com/nodejs/node/issues/61483
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"SEA building in a Linux arm64 docker container can corrupt the .gnu.hash section of the binary","articleBody":"Noticed in https://github.com/nodejs/node/pull/59582, I can only reproduce it locally using docker. The Node.js devcontainer image is enough to reproduce this when run on an arm64 host:\n\n```\ndocker pull nodejs/devcontainer:nightly\ndocker run -it nodejs/devcontainer:nightly\n```\n\nIn the container:\n\n```bash\necho 'console.log(\"hello\")' \u003e hello.js\necho '{\"main\":\"./hello.js\", \"output\":\"./sea-prep.blob\"}' \u003e sea-config.json\nnode --experimental-sea-config sea-config.json\ncp `which node` ./hello\nreadelf -x .gnu.hash ./hello | head -n 100 # shows the section filled with the symbol lookup table\nnpx postject hello NODE_SEA_BLOB sea-prep.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2\nreadelf -x .gnu.hash ./hello | head -n 100 # shows a bunch of zeros\n```\n\nThis does not reproduce on a bare-metal Linux arm64 server, or Linux x64 (bare-metal or in docker), which I think is why in the Node.js pull request it only fails in the GitHub action on Linux arm64.\n\nThe result of this is that the produced Node.js SEA cannot load any addons using `process.dlopen()`, because it cannot look up the `napi_*` symbols from itself (the same can be said about any other non-napi addons, which rely on the same mechanism to look up symbols from the binary to load the addons).","author":{"url":"https://github.com/joyeecheung","@type":"Person","name":"joyeecheung"},"datePublished":"2025-11-08T19:51:55.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/61483/node/issues/61483"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:c1b91c74-b173-ada2-f688-9de534c71ed8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | CB26:20C06B:DC25D9:125DA89:6A4C4E16 |
| html-safe-nonce | 8450e49f570bed84999de3aeb9dda36a81ca9383fcf93fbb2c53f345a4477272 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDQjI2OjIwQzA2QjpEQzI1RDk6MTI1REE4OTo2QTRDNEUxNiIsInZpc2l0b3JfaWQiOiI1MzQxOTM0NjU1MzA3OTc1OTAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 2c3f4ffaa2b08b2dab4718ed597b0eeab08082a74fb13899c0a2baefe085c729 |
| hovercard-subject-tag | issue:3845552342 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/nodejs/node/61483/issue_layout |
| twitter:image | https://opengraph.githubassets.com/d7c64d0b91c3f5c383033243685264ed74a979c7d543c686af7ab46e2fee5bbf/nodejs/node/issues/61483 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/d7c64d0b91c3f5c383033243685264ed74a979c7d543c686af7ab46e2fee5bbf/nodejs/node/issues/61483 |
| og:image:alt | Noticed in #59582, I can only reproduce it locally using docker. The Node.js devcontainer image is enough to reproduce this when run on an arm64 host: docker pull nodejs/devcontainer:nightly docker... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | joyeecheung |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c |
| turbo-cache-control | no-preview |
| go-import | github.com/nodejs/node git https://github.com/nodejs/node.git |
| octolytics-dimension-user_id | 9950313 |
| octolytics-dimension-user_login | nodejs |
| octolytics-dimension-repository_id | 27193779 |
| octolytics-dimension-repository_nwo | nodejs/node |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 27193779 |
| octolytics-dimension-repository_network_root_nwo | nodejs/node |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 65d78903193f110d7a9d1f8587c6dc3cb911aae0 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width