build: add mips64el support#27992
Conversation
This reverts commit 9334e45.
V8 now resume supporting for mipsel/mips64el. This commit add linux64-mips64 platform dependent files in 'deps/openssl/config/archs/linux64-mips64', and update the corresponding gypi files and header files. Refs: https://groups.google.com/forum/#!topic/v8-dev/oXkv5OVCXyc
|
Hello @mutao-loongson, and thank you for the contribution! I would really be happy if we could get some sort of CI for this, preferably under the https://github.com/nodejs/unofficial-builds initiative. Could you help with that? |
I would love to do something for nodejs community. I have read https://github.com/nodejs/unofficial-builds. It only copes with compiling stage of CI, no tests stage. What you mean by "some sort of CI"? Could you explain further for that ? What I need to do to offer help? And what need to do to make mips64el to be one of the platforms that nodejs officially supports ? Please give me some instructions. |
bnoordhuis
left a comment
There was a problem hiding this comment.
LGTM (and RSLGTM w.r.t. to the openssl changes; they look correct but I didn't check every line.)
Having mipsel machines in the CI matrix would be nice but it's not as if we had those before. I'm okay with landing this as-is as long as it's understood that it comes with no warranty, no promise of support, etc.
(That includes timely review of mipsel-related pull requests ^^)
|
OK, I willing to spend time to support node for mipsel-related problems. First, I would following the advice from @refack to response to https://github.com/nodejs/unofficial-builds initiative. When opportunity matures, then, I would propose adding mipsel machines into the CI matrix. Best Regards. |
|
Hello, when could this pull request be landed ? |
I believe the only remaining requirement is that it pass CI. CI: https://ci.nodejs.org/job/node-test-pull-request/23913/ Also: /ping @nodejs/build in case anyone there has opinions or wants to do something CI-wise.... |
|
Also: /ping @nodejs/crypto in case anyone wants to look over the OpenSSL stuff |
|
This is really sweet. I don't have full confidence in the OpenSSL changes and would love for @sam-github or @shigeki to add their +1 to @bnoordhuis'. |
sam-github
left a comment
There was a problem hiding this comment.
As far as I can tell, this is purely additive, it doesn't change anything about node/openssl on currently supported platforms, and is pretty minimal (apart from the noise of auto-generated openssl config output), so LGTM.
|
Yes, I don't change anything about node/openssl on currently supported platform. I just modified some gypi and header files and added auto-generated openssl config output to add mips64el compiling support. But CI can't pass ?! I am confused! I will setup win2008r2-vs2017 envrionment in virtual machine to try to reproduce the failure and try to figure out what wrong with "node-test-binary-windows-2" test case. |
|
I think you just hit a flaky test @mutao-loongson, the re-run is green(ish) so this is good to go I think. |
|
Landed in 2a9f1ad...779a243 |
V8 now resume supporting for mipsel/mips64el. This commit add linux64-mips64 platform dependent files in 'deps/openssl/config/archs/linux64-mips64', and update the corresponding gypi files and header files. Refs: https://groups.google.com/forum/#!topic/v8-dev/oXkv5OVCXyc PR-URL: #27992 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
|
Thanks @rvagg , I would not try to reproduce the failure anymore. |
V8 now resume supporting for mipsel/mips64el. This commit add linux64-mips64 platform dependent files in 'deps/openssl/config/archs/linux64-mips64', and update the corresponding gypi files and header files. Refs: https://groups.google.com/forum/#!topic/v8-dev/oXkv5OVCXyc PR-URL: #27992 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.0. #28449
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
PR-URL: #28508
Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.0. #28449
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.1. #28449,
#28511
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
Notable changes:
* build:
* Experimental support for building Node.js on MIPS architecture
is back. #27992
* child_process:
* The promisified versions of `child_process.exec` and
`child_process.execFile` now both return a `Promise` which has the
child instance attached to their `child` property.
#28325
* deps:
* Updated libuv to 1.30.1. #28449,
#28511
* Support for the Haiku platform has been added.
* The maximum `UV_THREADPOOL_SIZE` has been increased from 128 to
1024.
* `uv_fs_copyfile()` now works properly when the source and
destination files are the same.
* process:
* A new method, `process.resourceUsage()` was added. It returns
resource usage for the current process, such as CPU time.
#28018
* src:
* Fixed an issue related to stdio that could lead to a crash of the
process in some circumstances.
#28490
* stream:
* Added a `writableFinished` property to writable streams. It
indicates that all the data has been flushed to the underlying
system. #28007
* worker:
* Fixed an issue that prevented worker threads to listen for data on
stdin. #28153
* meta:
* Added Jiawen Geng (https://github.com/gengjiawen) to collaborators.
#28322
PR-URL: #28508
build: add support for mips64el
V8 now resume supporting for mipsel/mips64el, the support for mips platform
need to recover.
First, revert commit 9334 e45aa0ed815c2745bcc2bb606d91be64998d.
Second, add linux64-mips64 platform dependent files and update the corresponding
gypi files and header files for OpenSSL compiling.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes