summaryrefslogtreecommitdiff
path: root/deps/openssl/openssl.gyp
AgeCommit message (Collapse)Author
2019-10-13build: fix version checks in gyp filesBen Noordhuis
Make `distutils.version.StrictVersion` available as a helper to gyp expressions so they can do proper version checks and update the gyp files accordingly. Caveat emptor: `StrictVersion` does *not* like empty strings so this commit adds truthiness guards. The helper could deal with those but I felt it better to make it explicit. Fixes: https://github.com/nodejs/node/issues/29927 PR-URL: https://github.com/nodejs/node/pull/29931 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-10-13build: always use strings for compiler version in gyp filesMichaël Zasso
If GYP finds a string variable that can be converted to an integer, it will do it when the variable is expanded. Use "0.0" instead of "0" to force strings and be able to use comparison operations such as `gas_version >= "2.26"` in Python 3. PR-URL: https://github.com/nodejs/node/pull/29897 Reviewed-By: Christian Clauss <cclauss@me.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
2019-04-04deps: add ARM64 Windows support in opensslShigeki Ohtsu
This adds ARM64 Windows support in the OpenSSL build system. Since OpenSSL's ARM64 Windows support does not have support for ASM-- that is, VC-WIN64-ARM inherits from VC-noCE-common which has no ASM files--`openssl_no_asm.gypi` is always used for building. This essentially forces the 'no-asm' Configure flag. PR-URL: https://github.com/nodejs/node/pull/26001 Fixes: https://github.com/nodejs/node/issues/25998 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
2019-01-22deps: add only avx2 configs for OpenSSL-1.1.1Shigeki Ohtsu
OpenSSL-1.1.1 has new support of AVX-512 but AVX-2 asm files still need to be generated for the older assembler support to keep backward compatibilities. PR-URL: https://github.com/nodejs/node/pull/25381 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Shigeki Ohtsu <ohtsu@ohtsu.org>
2018-11-12build: disable openssl asm on arm64 for nowBen Noordhuis
There is reason to believe the generated assembly isn't working correctly so let's disable it for now pending further investigation. PR-URL: https://github.com/nodejs/node/pull/24270 Refs: https://github.com/nodejs/node/issues/23913 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
2018-04-10deps: add gyp, header and Makefile for openssl110Shigeki Ohtsu
This commit has a new binding scheme in builing OpenSSL-1.1.0 library with Node. OpenSSL-1.1.0 uses a new build system with perl for various supported platforms. See `Configurations/README` and `Configurations/README.design` in the OpenSSL source for details. In order to build OpenSSL library without perl in the build of Node for various supported platforms, platform dependent files (e.g. asm and header files ) are pre-generated and stored into the `config/arch` directory. - Makefile and generate_gypi.pl Makefile has supported platform list and generates and copies platform dependent files (e.g. asm files) into arch directory with generate_gypi.pl. Platform dependent gypi files also created obtaining build information from `configdata.pm` that is generated with `Configure` in the OpenSSL build system. For Windows, `Configure` generates makefile that is only available to nmake command. Since nmake is not supported in Linux, `Makefile_VC-WIN32` and `Makefile_VC-WIN64A` are made created by hand for the use of GNU make. If make rules or targets are changed in the version up of OpenSSL, they should be also updated. The following files are used in upgrading openssl-1.1.0. - gyp and gypi files openssl.gyp has two targets of openssl and openssl-cli referred from node.gyp. They includes asm and no_asm gypi files with arch dependent gypi according to its build options and platforms . The gyp data which is common with asm and no_asm are stored in openssl_common.gypi. - header files bn_conf.h, dso_conf.h and opensslconf.h are platform dependent in the OpenSSL sources. They are replaced with *.h.tmpl files to include the file in the `../../../config/` and referred to each arch files that depends on asm and no-asm option. Fixes: https://github.com/nodejs/node/issues/4270 PR-URL: https://github.com/nodejs/node/pull/19794 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2018-03-04build: disable openssl build warnings on macosBen Noordhuis
We already disable `-Wmissing-field-initializers` on other Unices but not on MacOS. PR-URL: https://github.com/nodejs/node/pull/19046 Fixes: https://github.com/nodejs/node/issues/18983 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
2017-11-27build: fix bsd build with gccMatheus Marchini
BSD build with GCC was broken because it was checking for the llvm_version variable on common.gypi, even though llvm wasn't installed (or needed). PR-URL: https://github.com/nodejs/node/pull/16737 Fixes: https://github.com/nodejs/node/issues/16257 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Refael Ackermann <refack@gmail.com>
2016-07-17deps: no /safeseh for ml64.exeFedor Indutny
`ml64.exe` doesn't support `/safeseh` option. Do not attempt to use it if `target_arch=="x64"`. See: https://msdn.microsoft.com/en-us/library/s0ksfwcf.aspx PR-URL: https://github.com/nodejs/node/pull/7759 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Robert Jefe Lindstaedt <robert.lindstaedt@gmail.com> Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
2016-06-27deps: `MASM.UseSafeExceptionHandlers` for OpenSSLFedor Indutny
Use `msvs_settings.MASM.UseSafeExceptionHandlers` when building OpenSSL assembly code on Windows. This option appends `/safeseh` to the list of assembler flags when building `.asm` files on Windows. Having this option in place, separate rules in `masm_compile.gypi` are no longer needed. Fix: #7426 PR-URL: https://github.com/nodejs/node/pull/7427 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Bert Belder <bertbelder@gmail.com>
2016-03-04build: correctly detect clang versionStefan Budeanu
Use the "Apple LLVM" version number since the banner has changed in newer versions of Mac OS X, resulting in the obsolete assembler path being used to compile OpenSSL. PR-URL: https://github.com/nodejs/node/pull/5553 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-09-15build: Updates to enable AIX supportMichael Dawson
These are the core changes that allow AIX to compile. There are still some test failures as there are some patches needed for libuv and npm that we'll need to contribute through those communities but this set allows node to be built on AIX and pass most of the core tests The change in js2c is because AIX does not support $ in identifier names. See the discussion/agreement in https://github.com/nodejs/node/issues/2272 PR-URL: https://github.com/nodejs/node/pull/2364 Reviewed-By: Ben Noordhuis <ben@strongloop.com> Reviewed-By: Rod Vagg <r@va.gg>
2015-08-04build: first set of updates to enable PPC supportMichael Dawson
These are the core changes that allow pLinux BE/LE compile. They don't include all of the changes needed for AIX which will follow once we have pLinux up and running in the builds PR-URL: https://github.com/nodejs/io.js/pull/2124 Reviewed-By: Ben Noordhuis <ben@strongloop.com> Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
2015-06-11crypto: support FIPS mode of OpenSSLFedor Indutny
Support building and running with FIPS-compliant OpenSSL. The process is following: 1. Download and verify `openssl-fips-x.x.x.tar.gz` from https://www.openssl.org/source/ 2. Extract source to `openssl-fips` folder 3. ``cd openssl-fips && ./config fipscanisterbuild --prefix=`pwd`/out`` (NOTE: On OS X, you may want to run ``./Configure darwin64-x86_64-cc --prefix=`pwd`/out`` if you are going to build x64-mode io.js) 4. `make -j && make install` 5. Get into io.js checkout folder 6. `./configure --openssl-fips=/path/to/openssl-fips/out` 7. Build io.js with `make -j` 8. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`) Fix: https://github.com/joyent/node/issues/25463 PR-URL: https://github.com/nodejs/io.js/pull/1890 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-04-15deps, build: add support older assemblerShigeki Ohtsu
Asm files for OpenSSL depends on the version of assembler. We provide two sets of asm files, one is asm_latest(avx2 and addx supported) and the other asm_obsolute(without avx1/2 and addx) The asm_latest needs the version of gas >= 2.23, llvm >= 3.3 or ml64 >= 12 as defined in https://github.com/openssl/openssl/blob/OpenSSL_1_0_2-stable/crypto/sha/asm/sha512-x86_64.pl#L112-L129 , otherwise asm_obsolute are used. We take MSVS_VERSION in gyp as a version check of assembler on Windows because the path to ml64.exe was set after configure in vcbuild.bat and executing ml64.exe was failed in configure. Fixes: https://github.com/iojs/io.js/issues/589 PR-URL: https://github.com/iojs/io.js/pull/1389 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-15deps: update openssl.gyp/gypi for openssl-1.0.2aShigeki Ohtsu
Update gyp sources for openssl-1.0.2a. The source list was extracted from Makefiles in `deps/openssl/openssl/{crypto/ssl/engines}`. Defines are created by referring the table in `deps/openssl/doc/openssl_define_list.pdf` that was derived from Makefile entries and outputs of `deps/openssl/openssl/Configure TABLE`. Renamed the variable of openssl_sources_arm_elf_gas to openssl_sources_arm_void_gas to be consistent with PERLASM_SCHEME. This also includes arm64 support. Fixes: https://github.com/iojs/io.js/issues/589 PR-URL: https://github.com/iojs/io.js/pull/1389 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-04deps: refactor openssl.gypShigeki Ohtsu
Updated gyp has "else if" syntax in condition. Use this for target_arch and OS switches. Several sources, defines, rules and libraries variables moved to gypi files. PR-URL: https://github.com/iojs/io.js/pull/1325 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-13build,src: remove sslv3 supportBen Noordhuis
SSLv3 is susceptible to downgrade attacks. Provide secure defaults, disable v3 protocol support entirely. PR-URL: https://github.com/iojs/io.js/pull/315 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-01-12gyp: remove vanished masm file from openssl buildFedor Indutny
PR-URL: https://github.com/iojs/io.js/pull/289 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-01-11build,src: remove sslv2 supportBen Noordhuis
SSLv2 has been deprecated and known broken for nearly twenty years now. I made SSLv2 support opt-in well over a year ago in commit 39aa894 and now this commit removes it entirely. PR-URL: https://github.com/iojs/io.js/pull/290 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Rod Vagg <rod@vagg.org>
2015-01-08win,openssl: disable some warningsBert Belder
This patch disables two (categories of) warnings: * deprecation of GetVersionExA * possible loss of data in implicit conversion of scalar types These warnings don't seem to point out serious problems, and avoiding them in openssl is somebody else's business. PR-URL: https://github.com/iojs/io.js/pull/261 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2014-09-03configure: add --openssl-no-asm flagFedor Indutny
see #8062 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2014-08-27deps: enable ARM assembly for OpenSSLFedor Indutny
fix #8062
2014-08-18Revert "gyp: preserve v8dbg syms on freebsd too"Fedor Indutny
This reverts commit 181b8a5d3af2e14c50dd32e1f16bf553fd3c7050.
2014-08-17gyp: preserve v8dbg syms on freebsd tooFedor Indutny
2014-07-23test: fix test-tls-server-verifyFedor Indutny
fix #7963
2014-04-08deps: update openssl to 1.0.1gFedor Indutny
2013-05-01Revert "deps: downgrade openssl to v1.0.0f"Ben Noordhuis
After much investigation it turns out that the affected servers are buggy. user-service.condenastdigital.com:443 in particular seems to reject large TLS handshake records. Cutting down the number of advertised ciphers or disabling SNI fixes the issue. Similarly, passing { secureOptions: constants.SSL_OP_NO_TLSv1_2 } seems to fix most connection issues with IIS servers. Having to work around buggy servers is annoying for our users but not a reason to downgrade OpenSSL. Therefore, revert it. This reverts commit 4fdb8acdaef4c3cb1d855e992ada0e63fee520a6.
2013-04-29deps: downgrade openssl to v1.0.0fBen Noordhuis
Several people have reported issues with IIS and Resin servers (or maybe SSL terminators sitting in front of those servers) that are fixed by downgrading OpenSSL. The AESNI performance improvements were nice but stability is more important. Downgrade OpenSSL from 1.0.1e to 1.0.0f. Fixes #5360 (and others).
2013-03-27openssl: disable HEARTBEAT TLS extensionFedor Indutny
Microsoft's IIS doesn't support it, and is not replying with ServerHello after receiving ClientHello which contains it. The good way might be allowing to opt-out this at runtime from javascript-land, but unfortunately OpenSSL doesn't support it right now. see #5119
2013-03-24deps: fix openssl build on windowsBen Noordhuis
Commit 8632af3 ("tools: update gyp to r1601") broke the Windows build. Older versions of GYP link to kernel32.lib, user32.lib, etc. but that was changed in r1584. See https://codereview.chromium.org/12256017 Fix the build by explicitly linking to the required libraries.
2013-03-05win/openssl: mark assembled object files as seh safeBert Belder
There are no unsafe structured exception handlers in object files generated from hand-crafted assembly - because they contain no exception handlers at all.
2013-02-20openssl: update to 1.0.1eFedor Indutny
2012-12-24openssl: clean up openssl.gypBen Noordhuis
Remove obsolete build configuration that escaped the purge in 7eaea7f.
2012-12-20openssl: enable optimized asm code on x86 and x64Bert Belder
2012-12-20openssl: clean up and merge configuration filesBert Belder
This patch brings the openssl library that is built with gyp closer to what the standard build system produces. All opensslconf.h versions are now merged into a single file, which makes it easier for compiled addons to locate this file.
2012-12-03build: avoid -Wno-old-style-declaration with gcc 4.2Ben Noordhuis
Fixes the build on FreeBSD <= 9 with the default compiler. Fixes #4186.
2012-10-21Merge remote-tracking branch 'origin/v0.8'Ben Noordhuis
Conflicts: deps/openssl/openssl.gyp
2012-10-15Revert "Disable OpenSSL UI"Ben Noordhuis
This reverts commit 1c88c3b3b56c6047180e116c5614dad2b13995f9. It breaks the "read a password from stdin" functionality that OpenSSL provides. Fixes #4059, #4143. Conflicts: deps/openssl/openssl.gyp
2012-09-25openssl: fix compilation issues on SmartOS x64Bert Belder
the SunOS linker is more strict than usual, so we have to be more correct.
2012-09-25openssl: use optimized asm code on x86 and x64Bert Belder
2012-09-17openssl: Set flags to properly build on sunosisaacs
2012-09-12openssl: disable EC_NISTP_64_GCC_128 on ia32Shigeki Ohtsu
uint128_t won't work on 32-bit platform Closes #4008.
2012-09-12openssl: disable harmless compiler warningsBen Noordhuis
Compile with -Wno-missing-field-initializers and -Wno-old-style-declaration. The warnings are harmless but they clutter the build output a great deal.
2012-09-12openssl: update the GYP build to work with openssl 1.0.1cBert Belder
2012-08-28Merge branch 'v0.8'Bert Belder
Conflicts: ChangeLog deps/openssl/openssl.gyp src/node_version.h
2012-08-23build: use the openssl android configuration for "arm" buildsNathan Rajlich
2012-07-05tls: make tls a little bit fasterFedor Indutny
Compile OpenSSL with inline assembly for big numbers
2012-04-12Disable OpenSSL UIBert Belder
2012-04-12build: configure opensslBen Noordhuis
* compile with -DOPENSSL_NO_SOCK and -DOPENSSL_NO_DGRAM, we don't need it * compile with -DOPENSSL_NO_GOST and -DOPENSSL_NO_HW_PADLOCK, works around the brain dead linker on solaris and maybe others * compile with -DTERMIOS, OS X doesn't have <termio.h> * compile with -D__EXTENSIONS__ on solaris, makes siginfo_t available * compile without -ansi on linux, it hides a number of POSIX declarations (sigaction, NI_MAXHOST, etc.)