Skip to content

build: update configure.py and common.gypi for z/OS - #66449

Open
gabylb wants to merge 2 commits into
nodejs:mainfrom
gabylb:zos-build
Open

gabylb wants to merge 2 commits into
nodejs:mainfrom
gabylb:zos-build

Conversation

@gabylb

@gabylb gabylb commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Please see each commit's message for description. All changes here affect z/OS only.

gabylb added 2 commits October 1, 2026 16:52
- Compile gen/icudt*.c instead of .S.
- Check required environment variables and configure.py args are set.
- Remove no-longer needed variables.
Signed-off-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
- Don't use icu data file on z/OS; use libnode's bundled ICU data.
- Include required defines, cflags, ldflags, and remove unsupported ones,
  following switch to clang compiler.
- Remove _ALL_SOURCE, as _POSIX_C_SOURCE and _POSIX_SOURCE already
  enable all required library functions (in deps/uv/CMakeLists.txt, only
  _OPEN_SYS is required to enable setgroups (in grp.h) instead of
  _ALL_SOURCE); also remove dup _OPEN_SYS_SOCK_IPV6.
- Add -D_EXT to defines (for setenv, and vsam.js' `__KEY_*` macros).
- Add _POSIX_C_SOURCE=200809L to enable at least `utimensat`.
- Add clang option -mzos-target=zosv2r5 also to ldflags, otherwise the
  default LE dataset is used that may not be for the current target.
- Add -m64 to ldflags, otherwise ld passes `AMODE=31,LIST,..` to
  the binder, causing unresolved symbols if the non-64 suffixed version
  of the compiler was used (e.g. ibm-clang instead of ibm-clang64).
- Add zoslib/include-wrappers/c++ in include_dirs for custom aligned new
  and delete operators.
Signed-off-by: Gaby Baghdadi <baghdadi@ca.ibm.com>
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/gyp

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to Node.js builds or CI infrastructure. needs-ci PRs that need a full CI run. labels Oct 1, 2026
@gabylb

gabylb commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

For the lint error stating to use dict.get() instead, please note that in this case we want configure.py to terminate if the environment variable isn't set.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Issues and PRs related to Node.js builds or CI infrastructure. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants