Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zos: update compiler options and default compiler #1768

Closed
wants to merge 2 commits into from

Conversation

zsw007
Copy link
Contributor

@zsw007 zsw007 commented Jun 3, 2019

Checklist
  • npm install && npm test passes
  • tests are included
  • documentation is changed or added
  • commit message follows commit guidelines
Description of change
  • updated the z/OS compiler options to support the latest version of Node.js on z/OS
  • on z/OS, the default compiler is njsc/njsc++ instead of gcc/g++, so the parameters in gyp have been updated accordingly

Copy link
Member

@richardlau richardlau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look okay to me, but cc @refack regarding the gyp changes.

@rvagg
Copy link
Member

rvagg commented Jun 20, 2019

@richardlau I'll leave this one up to you to get merged

@richardlau
Copy link
Member

richardlau commented Jun 20, 2019

@richardlau I'll leave this one up to you to get merged

CI to check this doesn't regress other platforms: https://ci.nodejs.org/view/All/job/nodegyp-test-pull-request/131/ (✔️)

@richardlau
Copy link
Member

richardlau commented Jun 20, 2019

Going to check this still works with the recently released z/OS Node.js 8. All being well I plan to merge this later today.

@richardlau
Copy link
Member

Tests all pass with the current z/OS Node.js 8 🎉
:/home/riclau/github/node-gyp>npm test

> node-gyp@5.0.0 test /home/riclau/github/node-gyp
> npm run lint && tape test/test-*


> node-gyp@5.0.0 lint /home/riclau/github/node-gyp
> eslint bin lib test

TAP version 13
# build simple addon
ok 1 should be equal
ok 2 should end in ok
running  /home/riclau/node-v8.16.0-os390-s390x/bin/node
ok 3 should be equal
# make sure addon symbols do not overlap
ok 4 should be equal
ok 5 should end in ok
running  /home/riclau/node-v8.16.0-os390-s390x/bin/node
ok 6 should be equal
# build simple addon in path with non-ascii characters
ok 7 python console app can't encode non-ascii character. # SKIP
# addon works with renamed host executable
ok 8 should be equal
ok 9 should end in ok
running  /tmp/notnode
ok 10 should be equal
# configure PYTHONPATH with no existing env
ok 11 should be equal
# configure PYTHONPATH with existing env of one dir
ok 12 should be equal
ok 13 should be equivalent
# configure PYTHONPATH with existing env of multiple dirs
ok 14 should be equal
ok 15 should be equivalent
# download over http
ok 16 should be equal
ok 17 should be equal
# download over https with custom ca
ok 18 should be equal
ok 19 should be equal
ok 20 should be equal
# download with missing cafile
ok 21 (unnamed assert)
# check certificate splitting
ok 22 should be equal
ok 23 should not be equal
# find accessible - empty array
ok 24 should be equal
# find accessible - single item array, readable
ok 25 should be equal
# find accessible - single item array, readable in subdir
ok 26 should be equal
# find accessible - single item array, unreadable
ok 27 should be equal
# find accessible - multi item array, no matches
ok 28 should be equal
# find accessible - multi item array, single match
ok 29 should be equal
# find accessible - multi item array, return first match
ok 30 should be equal
# test find-node-directory - node install
ok 31 should be equal
ok 32 should be equal
ok 33 should be equal
ok 34 should be equal
ok 35 should be equal
ok 36 should be equal
# test find-node-directory - node build
ok 37 should be equal
ok 38 should be equal
ok 39 should be equal
ok 40 should be equal
ok 41 should be equal
ok 42 should be equal
# test find-node-directory - node in bin directory
ok 43 should be equal
ok 44 should be equal
ok 45 should be equal
ok 46 should be equal
ok 47 should be equal
ok 48 should be equal
# test find-node-directory - node in build release dir
ok 49 should be equal
ok 50 should be equal
ok 51 should be equal
ok 52 should be equal
ok 53 should be equal
ok 54 should be equal
# test find-node-directory - node in Debug release dir
ok 55 should be equal
ok 56 should be equal
ok 57 should be equal
ok 58 should be equal
ok 59 should be equal
ok 60 should be equal
# test find-node-directory - not found
ok 61 should be equal
ok 62 should be equal
ok 63 should be equal
ok 64 should be equal
ok 65 should be equal
ok 66 should be equal
# test find-node-directory - node install
ok 67 should be equal
ok 68 should be equal
ok 69 should be equal
ok 70 should be equal
ok 71 should be equal
ok 72 should be equal
# find python
ok 73 should be equal
ok 74 should be equal
ok 75 should be equal
ok 76 (unnamed assert)
# find python - python
ok 77 should be equal
ok 78 (unnamed assert)
ok 79 should be equal
ok 80 (unnamed assert)
ok 81 should be equal
ok 82 should be equal
# find python - python too old
ok 83 (unnamed assert)
ok 84 (unnamed assert)
# find python - python too new
ok 85 (unnamed assert)
ok 86 (unnamed assert)
# find python - no python
ok 87 (unnamed assert)
ok 88 (unnamed assert)
# find python - no python2
ok 89 should be equal
ok 90 should be equal
# find python - no python2, no python, unix
ok 91 (unnamed assert)
ok 92 (unnamed assert)
# find python - no python, use python launcher
ok 93 should not be equal
ok 94 should not be equal
ok 95 should be equal
ok 96 should be equal
# find python - python 3, use python launcher
ok 97 should not be equal
ok 98 should not be equal
ok 99 should be equal
ok 100 should be equal
# find python - python 3, use python launcher, python 2 too old
ok 101 should not be equal
ok 102 should not be equal
ok 103 should be equal
ok 104 should be equal
ok 105 (unnamed assert)
ok 106 (unnamed assert)
# find python - no python, no python launcher, good guess
ok 107 (unnamed assert)
ok 108 (unnamed assert)
ok 109 should be equal
ok 110 (unnamed assert)
# find python - no python, no python launcher, bad guess
ok 111 (unnamed assert)
ok 112 (unnamed assert)
# VS2013
ok 113 expected search for registry value HKLM\Software\Microsoft\VisualStudio\SxS\VC7\12.0
ok 114 expected search for registry value HKLM\Software\Microsoft\MSBuild\ToolsVersions\12.0\MSBuildToolsPath
ok 115 should be equal
ok 116 should be equivalent
# VS2013 should not be found on new node versions
ok 117 expect error
ok 118 no data
# VS2015
ok 119 expected search for registry value HKLM\Software\Microsoft\VisualStudio\SxS\VC7\14.0
ok 120 expected search for registry value HKLM\Software\Microsoft\MSBuild\ToolsVersions\14.0\MSBuildToolsPath
ok 121 should be equal
ok 122 should be equivalent
# error from PowerShell
ok 123 expect error
ok 124 no data
# empty output from PowerShell
ok 125 expect error
ok 126 no data
# output from PowerShell not JSON
ok 127 expect error
ok 128 no data
# wrong JSON from PowerShell
ok 129 expect error
ok 130 no data
# empty JSON from PowerShell
ok 131 expect error
ok 132 no data
# future version
ok 133 expect error
ok 134 expect error
ok 135 no data
# single unusable VS2017
ok 136 expect error
ok 137 expect error
ok 138 no data
# minimal VS2017 Build Tools
ok 139 should be equal
ok 140 should be equivalent
# VS2017 Community with C++ workload
ok 141 should be equal
ok 142 should be equivalent
# VS2019 Preview with C++ workload
ok 143 should be equal
ok 144 should be equivalent
# minimal VS2019 Build Tools
ok 145 should be equal
ok 146 should be equivalent
# VS2019 Community with C++ workload
ok 147 should be equal
ok 148 should be equivalent
# fail when looking for invalid path
ok 149 expect error
ok 150 no data
# look for VS2013 by version number
ok 151 should be equal
ok 152 should be equivalent
# look for VS2013 by installation path
ok 153 should be equal
ok 154 should be equivalent
# look for VS2015 by version number
ok 155 should be equal
ok 156 should be equivalent
# look for VS2015 by installation path
ok 157 should be equal
ok 158 should be equivalent
# look for VS2017 by version number
ok 159 should be equal
ok 160 should be equivalent
# look for VS2017 by installation path
ok 161 should be equal
ok 162 should be equivalent
# look for VS2019 by version number
ok 163 should be equal
ok 164 should be equivalent
# look for VS2017 by installation path
ok 165 should be equal
ok 166 should be equivalent
# latest version should be found by default
ok 167 should be equal
ok 168 should be equivalent
# run on a usable VS Command Prompt
ok 169 should be equal
ok 170 should be equivalent
# run on a unusable VS Command Prompt
ok 171 expect error
ok 172 no data
# run on a VS Command Prompt with matching msvs_version
ok 173 should be equal
ok 174 should be equivalent
# run on a VS Command Prompt with mismatched msvs_version
ok 175 expect error
ok 176 no data
# EACCES retry once
gyp WARN EACCES user "RICLAU" does not have permission to access the dev dir "/home/riclau/github/node-gyp/test/8.16.0"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
ok 177 (unnamed assert)
ok 178 (unnamed assert)
ok 179 (unnamed assert)
# options in environment
ok 180 should be equivalent
# test process release - process.version = 0.8.20
ok 181 should be equal
ok 182 should be equivalent
# test process release - process.version = 0.10.21
ok 183 should be equal
ok 184 should be equivalent
# test process release - process.version = 0.12.9
ok 185 should be equal
ok 186 should be equivalent
# test process release - process.version = 0.10.41
ok 187 should be equal
ok 188 should be equivalent
# test process release - process.release ~ node@0.10.42
ok 189 should be equal
ok 190 should be equivalent
# test process release - process.release ~ node@0.12.10
ok 191 should be equal
ok 192 should be equivalent
# test process release - process.release ~ node@4.1.23
ok 193 should be equal
ok 194 should be equivalent
# test process release - process.release ~ node@4.1.23 / corp build
ok 195 should be equal
ok 196 should be equivalent
# test process release - process.release ~ node@4.1.23 --target=0.10.40
ok 197 should be equal
ok 198 should be equivalent
# test process release - process.release ~ node@4.1.23 --dist-url=https://foo.bar/baz
gyp verb download using dist-url https://foo.bar/baz
ok 199 should be equal
ok 200 should be equivalent
# test process release - process.release ~ frankenstein@4.1.23
ok 201 should be equal
ok 202 should be equivalent
# test process release - process.release ~ frankenstein@4.1.23 --dist-url=http://foo.bar/baz/
gyp verb download using dist-url http://foo.bar/baz/
ok 203 should be equal
ok 204 should be equivalent
# test process release - process.release ~ node@4.0.0-rc.4
ok 205 should be equal
ok 206 should be equivalent
# test process release - process.release ~ node@4.0.0-rc.4 passed as argv[0]
ok 207 should be equal
ok 208 should be equivalent
# test process release - process.release ~ node@4.0.0-rc.4 - bogus string passed as argv[0]
ok 209 should be equal
ok 210 should be equivalent
# test process release - NODEJS_ORG_MIRROR
gyp verb download using dist-url http://foo.bar
ok 211 should be equal
ok 212 should be equivalent

1..212
# tests 212
# pass  212

# ok

:/home/riclau/github/node-gyp>

richardlau pushed a commit that referenced this pull request Jun 20, 2019
PR-URL: #1768
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
richardlau pushed a commit that referenced this pull request Jun 20, 2019
PR-URL: #1768
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@richardlau
Copy link
Member

Landed in 98a49de...ea9b68e.

@richardlau richardlau closed this Jun 20, 2019
@richardlau
Copy link
Member

@rvagg AFAICT this should have no effect on the existing non-z/OS platforms so I'll leave it up to you as to whether to include it in the v5.0.1 proposal or leave it for later. The z/OS port of Node.js 8 already includes a patched version of node-gyp for when it is used by the version of npm it includes -- This PR is for cases where modules directly depend on/invoke node-gyp.

@rvagg
Copy link
Member

rvagg commented Jun 21, 2019

I'll keep 5.0.1 simple and queue up another release after I get it out. thanks @richardlau

rvagg pushed a commit that referenced this pull request Jun 21, 2019
PR-URL: #1768
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
rvagg pushed a commit that referenced this pull request Jun 21, 2019
PR-URL: #1768
Reviewed-By: Richard Lau <riclau@uk.ibm.com>
@rvagg rvagg mentioned this pull request Jun 21, 2019
@richardlau
Copy link
Member

Upstreamed the gyp changes to refack/GYP3#47.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants