deps: add gyp, header and Makefile for openssl110
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>
This commit is contained in:
parent
1bcb6c0d26
commit
99eb744842
79
deps/openssl/README.md
vendored
Normal file
79
deps/openssl/README.md
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
This has a new binding scheme in building OpenSSL-1.1.0 library with
|
||||
Node.js. OpenSSL-1.1.0 uses a new build system with `Perl` for various
|
||||
supported platforms. See `openssl/Configurations/README` and
|
||||
`openssl/Configurations/README.design` in the OpenSSL source for
|
||||
details.
|
||||
|
||||
In order to build OpenSSL library without `Perl` in the build of Node.js
|
||||
for various supported platforms, platform dependent files (e.g. asm
|
||||
and header files ) are pre-generated and stored into the
|
||||
`config/archs` directory.
|
||||
|
||||
- `config/Makefile` and `config/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. `config/Makefile_VC-WIN32` and
|
||||
`config/Makefile_VC-WIN64A` are made by hand for the use of GNU
|
||||
make. If `makefile` rules or targets are changed in the version up
|
||||
of OpenSSL, they should be also updated.
|
||||
|
||||
- gyp and gypi files (`openssl*.{gyp,gypi}`)
|
||||
|
||||
`openssl.gyp` has two targets of openssl and openssl-cli referred
|
||||
from `node.gyp`. They include 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 (`config/*.{h,h.tmpl}`)
|
||||
|
||||
`bn_conf.h`, `dso_conf.h` and `opensslconf.h` are platform dependent
|
||||
in the OpenSSL sources. They are replaced with `config/*.h.tmpl`
|
||||
files to include the file in the `../../../config/` and referred to
|
||||
each arch file that depends on asm and no-asm option.
|
||||
|
||||
### Supported architectures for use of ASM
|
||||
|
||||
Here is a list of supported architectures for use of ASM in OpenSSL.
|
||||
|
||||
| --dest-os | --dest-cpu | OpenSSL target arch | CI |
|
||||
| --------- | ---------- | -------------------- | --- |
|
||||
| aix | ppc | aix-gcc | o |
|
||||
| aix | ppc64 | aix64-gcc | o |
|
||||
| linux | ia32 | linux-elf | o |
|
||||
| linux | x32 | linux-x32 | - |
|
||||
| linux | x64 | linux-x86_64 | o |
|
||||
| linux | arm | linux-armv4 | o |
|
||||
| linux | arm64 | linux-aarch64 | o |
|
||||
| linux | ppc | linux-ppc | o |
|
||||
| linux | ppc64 | linux-ppc64 | o |
|
||||
| linux | ppc64(*1) | linux-ppc64le | o |
|
||||
| linux | s390 | linux32-s390x | o |
|
||||
| linux | s390x | linux64-s390x | o |
|
||||
| mac | ia32 | darwin-i386-cc | - |
|
||||
| mac | x64 | darwin64-x86-cc | o |
|
||||
| win | ia32 | VC-WIN32 | - |
|
||||
| win | x64 | VC-WIN64A | o |
|
||||
| solaris | ia32 | solaris-x86-gcc | o |
|
||||
| solaris | x64 | solaris64-x86_64-gcc | o |
|
||||
| freebsd | ia32 | BSD-x86 | - |
|
||||
| freebsd | x64 | BSD-x86_64 | o |
|
||||
| openbsd | ia32 | BSD-x86 | - |
|
||||
| openbsd | x64 | BSD-x86_64 | - |
|
||||
| others | others | linux-elf | - |
|
||||
|
||||
(*1: This needs to be configured with the variable of node_byteorder:
|
||||
little)
|
||||
|
||||
These are listed in [config/Makefile](config/Makefile).
|
||||
Please refer [config/opensslconf_asm.h](config/opensslconf_asm.h) for details.
|
||||
|
||||
### Upgrading OpenSSL
|
||||
|
||||
Please refer [config/README.md](config/README.md).
|
64
deps/openssl/config/Makefile
vendored
Normal file
64
deps/openssl/config/Makefile
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
# This Makefile is confirmed to be run only on Linux (CentOS and
|
||||
# Ubuntu). perl5 and gas(>=2.26) are needed.
|
||||
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifneq ($(UNAME_S),Linux)
|
||||
$(error This can be run only on Linux)
|
||||
endif
|
||||
|
||||
PERL = perl
|
||||
|
||||
# Supported architecture list
|
||||
ARCHS = aix-gcc aix64-gcc BSD-x86_64 \
|
||||
darwin64-x86_64-cc darwin-i386-cc linux-aarch64 \
|
||||
linux-armv4 linux-elf linux-x32 linux-x86_64 linux-ppc \
|
||||
linux-ppc64 linux-ppc64le linux32-s390x linux64-s390x \
|
||||
solaris-x86-gcc solaris64-x86_64-gcc VC-WIN64A VC-WIN32
|
||||
|
||||
CONFIGURE = ./Configure
|
||||
# no-comp: against CRIME attack
|
||||
# no-shared: openssl-cli needs static link
|
||||
# no-afalgeng: old Linux kernel < 4.0 does not support it
|
||||
COPTS = no-comp no-shared no-afalgeng
|
||||
|
||||
# disable platform check in Configure
|
||||
NO_WARN_ENV = CONFIGURE_CHECKER_WARN=1
|
||||
|
||||
GITIGNORE = $(OPSSL_SRC)/.gitignore
|
||||
GENERATE = ./generate_gypi.pl
|
||||
|
||||
OPSSL_SRC = ../openssl
|
||||
|
||||
# Header files generated with Configure
|
||||
CFG = opensslconf.h
|
||||
SRC_CFG = $(OPSSL_SRC)/include/openssl/$(CFG)
|
||||
INT_CFGS = bn_conf.h dso_conf.h
|
||||
INT_CFG_DIR = $(OPSSL_SRC)/crypto/include/internal
|
||||
|
||||
PHONY = all clean replace
|
||||
.PHONY: $(PHONY)
|
||||
|
||||
all: $(ARCHS) replace
|
||||
|
||||
# Configure and generate openssl asm files for each archs
|
||||
$(ARCHS):
|
||||
# Remove openssl .gitignore to follow nodejs .gitignore
|
||||
if [ -e $(GITIGNORE) ]; then rm $(GITIGNORE); fi
|
||||
# Confgure asm and generate asm sources
|
||||
cd $(OPSSL_SRC); $(NO_WARN_ENV) $(PERL) $(CONFIGURE) $(COPTS) $@;
|
||||
$(PERL) -w -I$(OPSSL_SRC) $(GENERATE) asm $@
|
||||
# Confgure no-asm and generate no-asm sources
|
||||
cd $(OPSSL_SRC); $(NO_WARN_ENV) $(PERL) $(CONFIGURE) $(COPTS) \
|
||||
no-asm $@;
|
||||
$(PERL) -w -I$(OPSSL_SRC) $(GENERATE) no-asm $@
|
||||
|
||||
# Replace and copy arch dependent headers
|
||||
replace:
|
||||
cp ./$(CFG).tmpl $(SRC_CFG)
|
||||
@for c in $(INT_CFGS); do \
|
||||
cp ./$$c.tmpl $(INT_CFG_DIR)/$$c; \
|
||||
done
|
||||
|
||||
clean:
|
||||
find archs \( -name \*.S -o -name \*.s -o -name \*.asm -o \
|
||||
-name \*.gypi -o -name \*.h -o -name \*.pm \) -exec rm "{}" \;
|
1337
deps/openssl/config/Makefile_VC-WIN32
vendored
Normal file
1337
deps/openssl/config/Makefile_VC-WIN32
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1365
deps/openssl/config/Makefile_VC-WIN64A
vendored
Normal file
1365
deps/openssl/config/Makefile_VC-WIN64A
vendored
Normal file
File diff suppressed because it is too large
Load Diff
118
deps/openssl/config/README.md
vendored
Normal file
118
deps/openssl/config/README.md
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
## Upgrading OpenSSL-1.1.0
|
||||
|
||||
### Requirements
|
||||
- Linux environment (Only CentOS7.1 and Ubuntu16 are tested)
|
||||
- `perl` Only Perl version 5 is tested.
|
||||
- `nasm` (http://www.nasm.us/) The version of 2.11 or higher is needed.
|
||||
- GNU `as` in binutils. The version of 2.26 or higher is needed.
|
||||
|
||||
### 0. Check Requirements
|
||||
|
||||
```sh
|
||||
$ perl -v
|
||||
|
||||
This is perl 5, version 22, subversion 1 (v5.22.1) built for
|
||||
x86_64-linux-gnu-thread-multi
|
||||
(with 60 registered patches, see perl -V for more detail)
|
||||
|
||||
$ as --version
|
||||
GNU assembler (GNU Binutils for Ubuntu) 2.26.1
|
||||
Copyright (C) 2015 Free Software Foundation, Inc.
|
||||
...
|
||||
$ nasm -v
|
||||
NASM version 2.11.08
|
||||
```
|
||||
### 1. Obtain and extract new OpenSSL sources
|
||||
|
||||
Get a new source from https://www.openssl.org/source/ and extract
|
||||
all files into `deps/openssl/openssl`. Then add all files and commit
|
||||
them.
|
||||
|
||||
```sh
|
||||
$ cd deps/openssl/
|
||||
$ rm -rf openssl
|
||||
$ tar zxf ~/tmp/openssl-1.1.0h.tar.gz
|
||||
$ mv openssl-1.1.0h openssl
|
||||
$ git add --all openssl
|
||||
$ git commit openssl
|
||||
````
|
||||
The commit message can be
|
||||
|
||||
```
|
||||
deps: upgrade openssl sources to 1.1.0h
|
||||
|
||||
This updates all sources in deps/openssl/openssl with openssl-1.1.0h.
|
||||
```
|
||||
### 2. Apply a floating patch
|
||||
|
||||
Currently, one floating patch is needed to build S390 asm files.
|
||||
```
|
||||
commit 094465362758ebf967b33c84d5c96230b46a34b3
|
||||
Author: Shigeki Ohtsu <ohtsu@ohtsu.org>
|
||||
Date: Wed Mar 7 23:52:52 2018 +0900
|
||||
|
||||
deps: add s390 asm rules for OpenSSL-1.1.0
|
||||
|
||||
This is a floating patch against OpenSSL-1.1.0 to generate asm files
|
||||
with Makefile rules and it is to be submitted to the upstream.
|
||||
```
|
||||
|
||||
Cherry pick it from the previous commit.
|
||||
```sh
|
||||
$ git cherry-pick 094465362758ebf967b33c84d5c96230b46a34b3
|
||||
```
|
||||
### 3. Execute `make` in `deps/openssl/config` directory
|
||||
|
||||
Just type `make` then it generates all platform dependent files into
|
||||
`deps/openssl/config/archs` directory.
|
||||
|
||||
```sh
|
||||
$ cd deps/openssl/config; make
|
||||
```
|
||||
|
||||
The commit message can be
|
||||
```
|
||||
commit 8cb1de45c60f2d520551166610115531db673518
|
||||
Author: Shigeki Ohtsu <ohtsu@ohtsu.org>
|
||||
Date: Thu Mar 29 16:46:11 2018 +0900
|
||||
|
||||
deps: update archs files for OpenSSL-1.1.0
|
||||
|
||||
`cd deps/openssl/config; make` updates all archs dependant files.
|
||||
```
|
||||
### 4. Check diffs
|
||||
|
||||
Check diffs if updates are right. Even if no updates in openssl
|
||||
sources, `buildinf.h` files will be updated for they have a timestamp
|
||||
data in them.
|
||||
```sh
|
||||
$ cd deps/openssl/config
|
||||
$ git diff
|
||||
```
|
||||
|
||||
*Note*: On Windows, OpenSSL Configure generates `makefile` that can be
|
||||
used for `nmake` command. The `make` command in the step 2 above uses
|
||||
`Makefile_VC-WIN64A` and `Makefile_VC-WIN32` that are manually
|
||||
created. When source files or build options are updated in Windows,
|
||||
it needs to change these two Makefiles by hand. If you are not sure,
|
||||
please ask @shigeki for details.
|
||||
### 5. Commit and make test
|
||||
|
||||
Update all architecture dependent files. Do not forget to git add or remove
|
||||
files if they are changed before commit.
|
||||
```sh
|
||||
$ cd deps/openssl/openssl/config
|
||||
$ git add archs
|
||||
$ git commit archs
|
||||
```
|
||||
|
||||
The commit message can be
|
||||
```
|
||||
commit 8cb1de45c60f2d520551166610115531db673518
|
||||
Author: Shigeki Ohtsu <ohtsu@ohtsu.org>
|
||||
Date: Thu Mar 29 16:46:11 2018 +0900
|
||||
|
||||
deps: update archs files for OpenSSL-1.1.0
|
||||
```
|
||||
|
||||
Finally, build Node and run tests.
|
5
deps/openssl/config/bn_conf.h
vendored
Normal file
5
deps/openssl/config/bn_conf.h
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#if defined(OPENSSL_NO_ASM)
|
||||
# include "./bn_conf_no-asm.h"
|
||||
#else
|
||||
# include "./bn_conf_asm.h"
|
||||
#endif
|
1
deps/openssl/config/bn_conf.h.tmpl
vendored
Normal file
1
deps/openssl/config/bn_conf.h.tmpl
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../../config/bn_conf.h"
|
57
deps/openssl/config/bn_conf_asm.h
vendored
Normal file
57
deps/openssl/config/bn_conf_asm.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
#undef OPENSSL_LINUX
|
||||
#if defined(__linux) && !defined(__ANDROID__)
|
||||
# define OPENSSL_LINUX 1
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/asm/crypto/include/internal/bn_conf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/asm/crypto/include/internal/bn_conf.h"
|
||||
#endif
|
||||
|
||||
/* GOST is not included in all platform */
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
# define OPENSSL_NO_GOST
|
||||
#endif
|
||||
/* HW_PADLOCK is not included in all platform */
|
||||
#ifndef OPENSSL_NO_HW_PADLOCK
|
||||
# define OPENSSL_NO_HW_PADLOCK
|
||||
#endif
|
57
deps/openssl/config/bn_conf_no-asm.h
vendored
Normal file
57
deps/openssl/config/bn_conf_no-asm.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
#undef OPENSSL_LINUX
|
||||
#if defined(__linux) && !defined(__ANDROID__)
|
||||
# define OPENSSL_LINUX 1
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/no-asm/crypto/include/internal/bn_conf.h"
|
||||
#endif
|
||||
|
||||
/* GOST is not included in all platform */
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
# define OPENSSL_NO_GOST
|
||||
#endif
|
||||
/* HW_PADLOCK is not included in all platform */
|
||||
#ifndef OPENSSL_NO_HW_PADLOCK
|
||||
# define OPENSSL_NO_HW_PADLOCK
|
||||
#endif
|
5
deps/openssl/config/dso_conf.h
vendored
Normal file
5
deps/openssl/config/dso_conf.h
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#if defined(OPENSSL_NO_ASM)
|
||||
# include "./dso_conf_no-asm.h"
|
||||
#else
|
||||
# include "./dso_conf_asm.h"
|
||||
#endif
|
1
deps/openssl/config/dso_conf.h.tmpl
vendored
Normal file
1
deps/openssl/config/dso_conf.h.tmpl
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../../config/dso_conf.h"
|
57
deps/openssl/config/dso_conf_asm.h
vendored
Normal file
57
deps/openssl/config/dso_conf_asm.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
#undef OPENSSL_LINUX
|
||||
#if defined(__linux) && !defined(__ANDROID__)
|
||||
# define OPENSSL_LINUX 1
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/asm/crypto/include/internal/dso_conf.h"
|
||||
#endif
|
||||
|
||||
/* GOST is not included in all platform */
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
# define OPENSSL_NO_GOST
|
||||
#endif
|
||||
/* HW_PADLOCK is not included in all platform */
|
||||
#ifndef OPENSSL_NO_HW_PADLOCK
|
||||
# define OPENSSL_NO_HW_PADLOCK
|
||||
#endif
|
57
deps/openssl/config/dso_conf_no-asm.h
vendored
Normal file
57
deps/openssl/config/dso_conf_no-asm.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
#undef OPENSSL_LINUX
|
||||
#if defined(__linux) && !defined(__ANDROID__)
|
||||
# define OPENSSL_LINUX 1
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h"
|
||||
#endif
|
||||
|
||||
/* GOST is not included in all platform */
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
# define OPENSSL_NO_GOST
|
||||
#endif
|
||||
/* HW_PADLOCK is not included in all platform */
|
||||
#ifndef OPENSSL_NO_HW_PADLOCK
|
||||
# define OPENSSL_NO_HW_PADLOCK
|
||||
#endif
|
165
deps/openssl/config/generate_gypi.pl
vendored
Executable file
165
deps/openssl/config/generate_gypi.pl
vendored
Executable file
@ -0,0 +1,165 @@
|
||||
#! /usr/bin/env perl -w
|
||||
use 5.10.0;
|
||||
use strict;
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin/../openssl/";
|
||||
use lib "$FindBin::Bin/../openssl/util/perl";
|
||||
use File::Basename;
|
||||
use File::Spec::Functions qw/:DEFAULT abs2rel rel2abs/;
|
||||
use File::Copy;
|
||||
use File::Path qw/make_path/;
|
||||
use with_fallback qw(Text::Template);
|
||||
|
||||
# Read configdata from ../openssl/configdata.pm that is generated
|
||||
# with ../openssl/Configure options arch
|
||||
use configdata;
|
||||
|
||||
my $asm = $ARGV[0];
|
||||
|
||||
unless ($asm eq "asm" or $asm eq "no-asm") {
|
||||
die "Error: $asm is invalid argument";
|
||||
}
|
||||
my $arch = $ARGV[1];
|
||||
|
||||
# nasm version check
|
||||
my $nasm_banner = `nasm -v`;
|
||||
die "Error: nasm is not installed." if (!$nasm_banner);
|
||||
|
||||
my $nasm_version_min = 2.11;
|
||||
my ($nasm_version) = ($nasm_banner =~/^NASM version ([0-9]\.[0-9][0-9])+/);
|
||||
if ($nasm_version < $nasm_version_min) {
|
||||
die "Error: nasm version $nasm_version is too old." .
|
||||
"$nasm_version_min or higher is required.";
|
||||
}
|
||||
|
||||
# gas version check
|
||||
my $gas_version_min = 2.26;
|
||||
my $gas_banner = `gcc -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`;
|
||||
my ($gas_version) = ($gas_banner =~/GNU assembler version ([2-9]\.[0-9]+)/);
|
||||
if ($gas_version < $gas_version_min) {
|
||||
die "Error: gas version $gas_version is too old." .
|
||||
"$gas_version_min or higher is required.";
|
||||
}
|
||||
|
||||
my $src_dir = "../openssl";
|
||||
my $arch_dir = "../config/archs/$arch";
|
||||
my $base_dir = "$arch_dir/$asm";
|
||||
|
||||
my $is_win = ($arch =~/^VC-WIN/);
|
||||
# VC-WIN32 and VC-WIN64A generate makefile but it can be available
|
||||
# with only nmake. Use pre-created Makefile_VC_WIN32
|
||||
# Makefile_VC-WIN64A instead.
|
||||
my $makefile = $is_win ? "../config/Makefile_$arch": "Makefile";
|
||||
# Generate arch dependent header files with Makefile
|
||||
my $buildinf = "crypto/buildinf.h";
|
||||
my $progs = "apps/progs.h";
|
||||
my $cmd1 = "cd ../openssl; make -f $makefile build_generated $buildinf $progs;";
|
||||
system($cmd1) == 0 or die "Error in system($cmd1)";
|
||||
|
||||
# Copy and move all arch dependent header files into config/archs
|
||||
make_path("$base_dir/crypto/include/internal", "$base_dir/include/openssl",
|
||||
{
|
||||
error => \my $make_path_err});
|
||||
if (@$make_path_err) {
|
||||
for my $diag (@$make_path_err) {
|
||||
my ($file, $message) = %$diag;
|
||||
die "make_path error: $file $message\n";
|
||||
}
|
||||
}
|
||||
copy("$src_dir/configdata.pm", "$base_dir/") or die "Copy failed: $!";
|
||||
copy("$src_dir/include/openssl/opensslconf.h",
|
||||
"$base_dir/include/openssl/") or die "Copy failed: $!";
|
||||
move("$src_dir/crypto/include/internal/bn_conf.h",
|
||||
"$base_dir/crypto/include/internal/") or die "Move failed: $!";
|
||||
move("$src_dir/crypto/include/internal/dso_conf.h",
|
||||
"$base_dir/crypto/include/internal/") or die "Move failed: $!";
|
||||
copy("$src_dir/$buildinf",
|
||||
"$base_dir/crypto/") or die "Copy failed: $!";
|
||||
move("$src_dir/$progs",
|
||||
"$base_dir/include") or die "Copy failed: $!";
|
||||
|
||||
# read openssl source lists from configdata.pm
|
||||
my @libapps_srcs = ();
|
||||
foreach my $obj (@{$unified_info{sources}->{'apps/libapps.a'}}) {
|
||||
push(@libapps_srcs, ${$unified_info{sources}->{$obj}}[0]);
|
||||
}
|
||||
|
||||
my @libssl_srcs = ();
|
||||
foreach my $obj (@{$unified_info{sources}->{libssl}}) {
|
||||
push(@libssl_srcs, ${$unified_info{sources}->{$obj}}[0]);
|
||||
}
|
||||
|
||||
my @libcrypto_srcs = ();
|
||||
my @generated_srcs = ();
|
||||
foreach my $obj (@{$unified_info{sources}->{libcrypto}}) {
|
||||
my $src = ${$unified_info{sources}->{$obj}}[0];
|
||||
# .S files should be preprocessed into .s
|
||||
if ($unified_info{generate}->{$src}) {
|
||||
# .S or .s files should be preprocessed into .asm for WIN
|
||||
$src =~ s\.[sS]$\.asm\ if ($is_win);
|
||||
push(@generated_srcs, $src);
|
||||
} else {
|
||||
push(@libcrypto_srcs, $src);
|
||||
}
|
||||
}
|
||||
|
||||
my @apps_openssl_srcs = ();
|
||||
foreach my $obj (@{$unified_info{sources}->{'apps/openssl'}}) {
|
||||
push(@apps_openssl_srcs, ${$unified_info{sources}->{$obj}}[0]);
|
||||
}
|
||||
|
||||
# Generate all asm files and copy into config/archs
|
||||
foreach my $src (@generated_srcs) {
|
||||
my $cmd = "cd ../openssl; CC=gcc ASM=nasm make -f $makefile $src;" .
|
||||
"cp --parents $src ../config/archs/$arch/$asm; cd ../config";
|
||||
system("$cmd") == 0 or die "Error in system($cmd)";
|
||||
}
|
||||
|
||||
# Create openssl.gypi
|
||||
my $template =
|
||||
Text::Template->new(TYPE => 'FILE',
|
||||
SOURCE => 'openssl.gypi.tmpl',
|
||||
DELIMITERS => [ "%%-", "-%%" ]
|
||||
);
|
||||
|
||||
my $gypi = $template->fill_in(
|
||||
HASH => {
|
||||
libssl_srcs => \@libssl_srcs,
|
||||
libcrypto_srcs => \@libcrypto_srcs,
|
||||
generated_srcs => \@generated_srcs,
|
||||
config => \%config,
|
||||
target => \%target,
|
||||
asm => \$asm,
|
||||
arch => \$arch,
|
||||
is_win => \$is_win,
|
||||
});
|
||||
|
||||
open(GYPI, "> ./archs/$arch/$asm/openssl.gypi");
|
||||
print GYPI "$gypi";
|
||||
close(GYPI);
|
||||
|
||||
# Create openssl-cl.gypi
|
||||
my $cltemplate =
|
||||
Text::Template->new(TYPE => 'FILE',
|
||||
SOURCE => 'openssl-cl.gypi.tmpl',
|
||||
DELIMITERS => [ "%%-", "-%%" ]
|
||||
);
|
||||
|
||||
my $clgypi = $cltemplate->fill_in(
|
||||
HASH => {
|
||||
apps_openssl_srcs => \@apps_openssl_srcs,
|
||||
libapps_srcs => \@libapps_srcs,
|
||||
config => \%config,
|
||||
target => \%target,
|
||||
arch => \$arch,
|
||||
is_win => \$is_win,
|
||||
});
|
||||
|
||||
open(CLGYPI, "> ./archs/$arch/$asm/openssl-cl.gypi");
|
||||
print CLGYPI "$clgypi";
|
||||
close(CLGYPI);
|
||||
|
||||
# Clean Up
|
||||
my $cmd2 ="cd $src_dir; make -f $makefile clean; make -f $makefile distclean;" .
|
||||
"git clean -f $src_dir/crypto";
|
||||
system($cmd2) == 0 or die "Error in system($cmd2)";
|
30
deps/openssl/config/openssl-cl.gypi.tmpl
vendored
Normal file
30
deps/openssl/config/openssl-cl.gypi.tmpl
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
{
|
||||
'variables': {
|
||||
'openssl_defines_%%-$arch-%%': [
|
||||
%%- foreach $define (@{$config{defines}}) {
|
||||
$OUT .= " '$define',\n";
|
||||
} -%% ],
|
||||
'openssl_cflags_%%-$arch-%%': [
|
||||
'%%-$target{cflags}-%%',
|
||||
],
|
||||
'openssl_ex_libs_%%-$arch-%%': [
|
||||
'%%-$target{ex_libs}-%%',
|
||||
],
|
||||
'openssl_cli_srcs_%%-$arch-%%': [
|
||||
%%- foreach $src (@apps_openssl_srcs) {
|
||||
$OUT .= " 'openssl/$src',\n";
|
||||
}
|
||||
foreach $src (@libapps_srcs) {
|
||||
$OUT .= " 'openssl/$src',\n";
|
||||
} -%% ],
|
||||
},
|
||||
'defines': ['<@(openssl_defines_%%-$arch-%%)'],
|
||||
'include_dirs': [
|
||||
'./include',
|
||||
],
|
||||
%%- if (!$is_win) {
|
||||
$OUT = " 'cflags' : ['<@(openssl_cflags_$arch)'],
|
||||
'libraries': ['<@(openssl_ex_libs_$arch)'],";
|
||||
} -%%
|
||||
'sources': ['<@(openssl_cli_srcs_%%-$arch-%%)'],
|
||||
}
|
37
deps/openssl/config/openssl.gypi.tmpl
vendored
Normal file
37
deps/openssl/config/openssl.gypi.tmpl
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
'variables': {
|
||||
'openssl_sources': [
|
||||
%%- foreach $src (@libssl_srcs) {
|
||||
$OUT .= " 'openssl/$src',\n";
|
||||
}
|
||||
foreach $src (@libcrypto_srcs) {
|
||||
$OUT .= " 'openssl/$src',\n";
|
||||
} -%% ],
|
||||
'openssl_sources_%%-$arch-%%': [
|
||||
%%- foreach $src (@generated_srcs) {
|
||||
$OUT .= " './config/archs/$arch/$asm/$src',\n";
|
||||
} -%% ],
|
||||
'openssl_defines_%%-$arch-%%': [
|
||||
%%- foreach $define (@{$config{defines}}) {
|
||||
$OUT .= " '$define',\n";
|
||||
} -%% ],
|
||||
'openssl_cflags_%%-$arch-%%': [
|
||||
'%%-$target{cflags}-%%',
|
||||
],
|
||||
'openssl_ex_libs_%%-$arch-%%': [
|
||||
'%%-$target{ex_libs}-%%',
|
||||
],
|
||||
},
|
||||
'include_dirs': [
|
||||
'.',
|
||||
'./include',
|
||||
'./crypto',
|
||||
'./crypto/include/internal',
|
||||
],
|
||||
'defines': ['<@(openssl_defines_%%-$arch-%%)'],
|
||||
%%- if (!$is_win) {
|
||||
$OUT = " 'cflags' : ['<@(openssl_cflags_$arch)'],
|
||||
'libraries': ['<@(openssl_ex_libs_$arch)'],";
|
||||
} -%%
|
||||
'sources': ['<@(openssl_sources)', '<@(openssl_sources_%%-$arch-%%)'],
|
||||
}
|
23
deps/openssl/config/opensslconf.h
vendored
Normal file
23
deps/openssl/config/opensslconf.h
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
#undef OPENSSL_LINUX
|
||||
#if defined(__linux) && !defined(__ANDROID__)
|
||||
# define OPENSSL_LINUX 1
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_NO_ASM)
|
||||
# include "./opensslconf_no-asm.h"
|
||||
#else
|
||||
# include "./opensslconf_asm.h"
|
||||
#endif
|
||||
|
||||
/* GOST is not included in all platform */
|
||||
#ifndef OPENSSL_NO_GOST
|
||||
# define OPENSSL_NO_GOST
|
||||
#endif
|
||||
/* HW_PADLOCK is not included in all platform */
|
||||
#ifndef OPENSSL_NO_HW_PADLOCK
|
||||
# define OPENSSL_NO_HW_PADLOCK
|
||||
#endif
|
||||
/* musl in Alpine Linux does not support getcontext etc.*/
|
||||
#if defined(OPENSSL_LINUX) && !defined(__GLIBC__) && !defined(__clang__)
|
||||
# define OPENSSL_NO_ASYNC
|
||||
#endif
|
1
deps/openssl/config/opensslconf.h.tmpl
vendored
Normal file
1
deps/openssl/config/opensslconf.h.tmpl
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../config/opensslconf.h"
|
135
deps/openssl/config/opensslconf_asm.h
vendored
Normal file
135
deps/openssl/config/opensslconf_asm.h
vendored
Normal file
@ -0,0 +1,135 @@
|
||||
/*
|
||||
In OpenSSL, opensslconf.h was generated by Configure script with
|
||||
specifying a target argument, where it includes several defines that
|
||||
depend on OS and architecture platform.
|
||||
|
||||
In node, we statically mapped --dest-os and --dest-cpu options in
|
||||
configure to the target of Configure in OpenSSL and make
|
||||
`deps/openssl/conf/openssconf.h` so as to include each file
|
||||
according to its target by checking pre-defined compiler macros.
|
||||
|
||||
Included opnesslconf.h files for supported target architectures can
|
||||
be generated by `Makefile` and stored under
|
||||
`archs/{target}/asm/opensslconf.h`. The Makefile also fixes several
|
||||
defines to meet node build requirements.
|
||||
|
||||
Here is a map table of configure options in node, target arch of
|
||||
Configure in OpenSSL and CI support.
|
||||
|
||||
| --dest-os | --dest-cpu | OpenSSL target arch | CI |
|
||||
| --------- | ---------- | -------------------- | --- |
|
||||
| aix | ppc | aix-gcc | o |
|
||||
| aix | ppc64 | aix64-gcc | o |
|
||||
| linux | ia32 | linux-elf | o |
|
||||
| linux | x32 | linux-x32 | - |
|
||||
| linux | x64 | linux-x86_64 | o |
|
||||
| linux | arm | linux-armv4 | o |
|
||||
| linux | arm64 | linux-aarch64 | o |
|
||||
| linux | ppc | linux-ppc | o |
|
||||
| linux | ppc64 | linux-ppc64 | o |
|
||||
| linux | ppc64 | linux-ppc64le | o | (node_byteoder: little)
|
||||
| linux | s390 | linux32-s390x | o |
|
||||
| linux | s390x | linux64-s390x | o |
|
||||
| mac | ia32 | darwin-i386-cc | - |
|
||||
| mac | x64 | darwin64-x86-cc | o |
|
||||
| win | ia32 | VC-WIN32 | - |
|
||||
| win | x64 | VC-WIN64A | o |
|
||||
| solaris | ia32 | solaris-x86-gcc | o |
|
||||
| solaris | x64 | solaris64-x86_64-gcc | o |
|
||||
| freebsd | ia32 | BSD-x86 | - |
|
||||
| freebsd | x64 | BSD-x86_64 | o |
|
||||
| openbsd | ia32 | BSD-x86 | - |
|
||||
| openbsd | x64 | BSD-x86_64 | - |
|
||||
| others | others | linux-elf | - |
|
||||
|
||||
--dest-os and --dest-cpu are mapped to pre-defined macros.
|
||||
|
||||
| --dest-os | pre-defined macro |
|
||||
| ------------------ | ------------------------- |
|
||||
| aix | _AIX |
|
||||
| win | _WIN32 |
|
||||
| win(64bit) | _WIN64 |
|
||||
| mac | __APPLE__ && __MACH__ |
|
||||
| solaris | __sun |
|
||||
| freebsd | __FreeBSD__ |
|
||||
| openbsd | __OpenBSD__ |
|
||||
| linux (not andorid)| __linux__ && !__ANDROID__ |
|
||||
| android | __ANDROID__ |
|
||||
|
||||
| --dest-cpu | pre-defined macro |
|
||||
| ---------- | ----------------- |
|
||||
| arm | __arm__ |
|
||||
| arm64 | __aarch64__ |
|
||||
| ia32 | __i386__ |
|
||||
| ia32(win) | _M_IX86 |
|
||||
| mips | __mips__ |
|
||||
| mipsel | __MIPSEL__ |
|
||||
| x32 | __ILP32__ |
|
||||
| x64 | __x86_64__ |
|
||||
| x64(win) | _M_X64 |
|
||||
| ppc | __PPC__ |
|
||||
| | _ARCH_PPC |
|
||||
| ppc64 | __PPC64__ |
|
||||
| | _ARCH_PPC64 |
|
||||
| s390 | __s390__ |
|
||||
| s390x | __s390x__ |
|
||||
|
||||
These are the list which is not implemented yet.
|
||||
|
||||
| --dest-os | --dest-cpu | OpenSSL target arch | CI |
|
||||
| --------- | ---------- | -------------------- | --- |
|
||||
| linux | mips | linux-mips32,linux-mips64,linux64-mips64? | --- |
|
||||
| linux | mipsel | ? | --- |
|
||||
| android | ia32 | android-x86 | --- |
|
||||
| android | arm | android-armv7 | --- |
|
||||
| android | mips | android-mips | --- |
|
||||
| android | mipsel | ? | --- |
|
||||
|
||||
Supported target arch list in OpenSSL can be obtained by typing
|
||||
`deps/openssl/openssl/Configure LIST`.
|
||||
|
||||
*/
|
||||
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/asm/include/openssl/opensslconf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/asm/include/openssl/opensslconf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/asm/include/openssl/opensslconf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/asm/include/openssl/opensslconf.h"
|
||||
#endif
|
43
deps/openssl/config/opensslconf_no-asm.h
vendored
Normal file
43
deps/openssl/config/opensslconf_no-asm.h
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
#if defined(OPENSSL_LINUX) && defined(__i386__)
|
||||
# include "./archs/linux-elf/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__ILP32__)
|
||||
# include "./archs/linux-x32/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__x86_64__)
|
||||
# include "./archs/linux-x86_64/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__arm__)
|
||||
# include "./archs/linux-armv4/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__aarch64__)
|
||||
# include "./archs/linux-aarch64/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__i386__)
|
||||
# include "./archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__APPLE__) && defined(__MACH__) && defined(__x86_64__)
|
||||
# include "./archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_WIN32) && defined(_M_IX86)
|
||||
# include "./archs/VC-WIN32/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_WIN32) && defined(_M_X64)
|
||||
# include "./archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__i386__)
|
||||
# include "./archs/BSD-x86/no-asm/include/openssl/opensslconf.h"
|
||||
#elif (defined(__FreeBSD__) || defined(__OpenBSD__)) && defined(__x86_64__)
|
||||
# include "./archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__sun) && defined(__i386__)
|
||||
# include "./archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(__sun) && defined(__x86_64__)
|
||||
# include "./archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__) && defined(L_ENDIAN)
|
||||
# include "./archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__PPC64__)
|
||||
# include "./archs/linux-ppc64/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && !defined(__PPC64__) && defined(__ppc__)
|
||||
# include "./archs/linux-ppc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_AIX) && defined(_ARCH_PPC64)
|
||||
# include "./archs/aix64-gcc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(_AIX) && !defined(_ARCH_PPC64) && defined(_ARCH_PPC)
|
||||
# include "./archs/aix-gcc/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390x__)
|
||||
# include "./archs/linux64-s390x/no-asm/include/openssl/opensslconf.h"
|
||||
#elif defined(OPENSSL_LINUX) && defined(__s390__)
|
||||
# include "./archs/linux32-s390x/no-asm/include/openssl/opensslconf.h"
|
||||
#else
|
||||
# include "./archs/linux-elf/no-asm/include/openssl/opensslconf.h"
|
||||
#endif
|
47
deps/openssl/openssl-cl_asm.gypi
vendored
Normal file
47
deps/openssl/openssl-cl_asm.gypi
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
'conditions': [
|
||||
['target_arch=="ppc" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix-gcc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix64-gcc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', {
|
||||
'includes': ['config/archs/linux-ppc64le/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc64/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="s390" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux32-s390x/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="s390x" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux64-s390x/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="arm" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-armv4/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="arm64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-aarch64/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-elf/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin-i386-cc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris-x86-gcc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN32/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32"', {
|
||||
# noasm linux-elf for other ia32 platforms
|
||||
'includes': ['config/archs/linux-elf/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="freebsd"', {
|
||||
'includes': ['config/archs/BSD-x86_64/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin64-x86_64-cc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris64-x86_64-gcc/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN64A/asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-x86_64/asm/openssl-cl.gypi'],
|
||||
}, {
|
||||
# Other architectures don't use assembly
|
||||
'includes': ['config/archs/linux-x86_64/asm/openssl-cl.gypi'],
|
||||
}],
|
||||
],
|
||||
}
|
47
deps/openssl/openssl-cl_no_asm.gypi
vendored
Normal file
47
deps/openssl/openssl-cl_no_asm.gypi
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
{
|
||||
'conditions': [
|
||||
['target_arch=="ppc" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix-gcc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix64-gcc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', {
|
||||
'includes': ['config/archs/linux-ppc64le/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc64/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="s390" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux32-s390x/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="s390x" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux64-s390x/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="arm" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-armv4/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="arm64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-aarch64/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin-i386-cc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris-x86-gcc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN32/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="ia32"', {
|
||||
# noasm linux-elf for other ia32 platforms
|
||||
'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="freebsd"', {
|
||||
'includes': ['config/archs/BSD-x86_64/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin64-x86_64-cc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris64-x86_64-gcc/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN64A/no-asm/openssl-cl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
|
||||
}, {
|
||||
# Other architectures don't use assembly
|
||||
'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
|
||||
}],
|
||||
],
|
||||
}
|
192
deps/openssl/openssl.gyp
vendored
192
deps/openssl/openssl.gyp
vendored
@ -1,185 +1,41 @@
|
||||
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'is_clang': 0,
|
||||
'gcc_version': 0,
|
||||
'openssl_no_asm%': 0,
|
||||
'xcode_version%': 0,
|
||||
'gas_version%': 0,
|
||||
'openssl_fips%': 'false',
|
||||
},
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'openssl',
|
||||
'type': '<(library)',
|
||||
'includes': ['openssl.gypi'],
|
||||
'sources': ['<@(openssl_sources)'],
|
||||
'sources/': [
|
||||
['exclude', 'md2/.*$'],
|
||||
['exclude', 'store/.*$']
|
||||
'includes': ['./openssl_common.gypi'],
|
||||
'defines': [
|
||||
# Compile out hardware engines. Most are stubs that dynamically load
|
||||
# the real driver but that poses a security liability when an attacker
|
||||
# is able to create a malicious DLL in one of the default search paths.
|
||||
'OPENSSL_NO_HW',
|
||||
],
|
||||
'conditions': [
|
||||
# FIPS
|
||||
['openssl_fips != ""', {
|
||||
'defines': [
|
||||
'OPENSSL_FIPS',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<(openssl_fips)/include',
|
||||
],
|
||||
|
||||
# Trick fipsld, it expects to see libcrypto.a
|
||||
'product_name': 'crypto',
|
||||
|
||||
'direct_dependent_settings': {
|
||||
'defines': [
|
||||
'OPENSSL_FIPS',
|
||||
],
|
||||
'include_dirs': [
|
||||
'<(openssl_fips)/include',
|
||||
],
|
||||
},
|
||||
}],
|
||||
[ 'OS=="aix"', {
|
||||
# AIX is missing /usr/include/endian.h
|
||||
'defines': [
|
||||
'__LITTLE_ENDIAN=1234',
|
||||
'__BIG_ENDIAN=4321',
|
||||
'__BYTE_ORDER=__BIG_ENDIAN',
|
||||
'__FLOAT_WORD_ORDER=__BIG_ENDIAN'],
|
||||
}],
|
||||
[ 'node_byteorder=="big"', {
|
||||
# Define Big Endian
|
||||
'defines': ['B_ENDIAN']
|
||||
}, {
|
||||
# Define Little Endian
|
||||
'defines':['L_ENDIAN']
|
||||
}],
|
||||
['openssl_no_asm!=0', {
|
||||
# Disable asm
|
||||
'defines': [
|
||||
'OPENSSL_NO_ASM',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_no_asm)'],
|
||||
[ 'openssl_no_asm==0', {
|
||||
'includes': ['./openssl_asm.gypi'],
|
||||
}, {
|
||||
# "else if" was supported in https://codereview.chromium.org/601353002
|
||||
'conditions': [
|
||||
['target_arch=="arm"', {
|
||||
'defines': ['<@(openssl_defines_asm)'],
|
||||
'sources': ['<@(openssl_sources_arm_void_gas)'],
|
||||
}, 'target_arch=="ia32" and OS=="mac"', {
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_ia32_mac)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_ia32_mac_gas)'],
|
||||
}, 'target_arch=="ia32" and OS=="win"', {
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_ia32_win)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_ia32_win_masm)'],
|
||||
}, 'target_arch=="ia32"', {
|
||||
# Linux or others
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_ia32_elf)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_ia32_elf_gas)'],
|
||||
}, 'target_arch=="x64" and OS=="mac"', {
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_x64_mac)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_x64_mac_gas)'],
|
||||
}, 'target_arch=="x64" and OS=="win"', {
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_x64_win)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_x64_win_masm)'],
|
||||
}, 'target_arch=="x64"', {
|
||||
# Linux or others
|
||||
'defines': [
|
||||
'<@(openssl_defines_asm)',
|
||||
'<@(openssl_defines_x64_elf)',
|
||||
],
|
||||
'sources': ['<@(openssl_sources_x64_elf_gas)'],
|
||||
}, 'target_arch=="arm64"', {
|
||||
'defines': ['<@(openssl_defines_arm64)',],
|
||||
'sources': ['<@(openssl_sources_arm64_linux64_gas)'],
|
||||
}, {
|
||||
# Other architectures don't use assembly.
|
||||
'defines': ['OPENSSL_NO_ASM'],
|
||||
'sources': ['<@(openssl_sources_no_asm)'],
|
||||
}],
|
||||
],
|
||||
}], # end of conditions of openssl_no_asm
|
||||
['OS=="win"', {
|
||||
'defines' : ['<@(openssl_defines_all_win)'],
|
||||
}, {
|
||||
'defines' : ['<@(openssl_defines_all_non_win)']
|
||||
}],
|
||||
['target_arch=="ia32" and OS=="win"', {
|
||||
'msvs_settings': {
|
||||
'MASM': {
|
||||
# Use /safeseh, see commit: 01fa5ee
|
||||
'UseSafeExceptionHandlers': 'true',
|
||||
},
|
||||
},
|
||||
'includes': ['./openssl_no_asm.gypi'],
|
||||
}],
|
||||
],
|
||||
'include_dirs': ['<@(openssl_include_dirs)'],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
'openssl/include'
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
'include_dirs': [ 'openssl/include']
|
||||
}
|
||||
}, {
|
||||
# openssl-cli target
|
||||
'includes': ['openssl-cli.gypi',],
|
||||
}
|
||||
'target_name': 'openssl-cli',
|
||||
'type': 'executable',
|
||||
'dependencies': ['openssl'],
|
||||
'includes': ['./openssl_common.gypi'],
|
||||
'conditions': [
|
||||
['openssl_no_asm==0', {
|
||||
'includes': ['./openssl-cl_asm.gypi'],
|
||||
}, {
|
||||
'includes': ['./openssl-cl_no_asm.gypi'],
|
||||
}],
|
||||
],
|
||||
},
|
||||
],
|
||||
'target_defaults': {
|
||||
'includes': ['openssl.gypi'],
|
||||
'include_dirs': ['<@(openssl_default_include_dirs)'],
|
||||
'defines': ['<@(openssl_default_defines_all)'],
|
||||
'conditions': [
|
||||
['OS=="win"', {
|
||||
'defines': ['<@(openssl_default_defines_win)'],
|
||||
'link_settings': {
|
||||
'libraries': ['<@(openssl_default_libraries_win)'],
|
||||
},
|
||||
}, {
|
||||
'defines': ['<@(openssl_default_defines_not_win)'],
|
||||
'cflags': ['-Wno-missing-field-initializers'],
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': ['-Wno-missing-field-initializers'],
|
||||
},
|
||||
'conditions': [
|
||||
['OS=="mac"', {
|
||||
'defines': ['<@(openssl_default_defines_mac)'],
|
||||
}, {
|
||||
'defines': ['<@(openssl_default_defines_linux_others)'],
|
||||
}],
|
||||
]
|
||||
}],
|
||||
['is_clang==1 or gcc_version>=43', {
|
||||
'cflags': ['-Wno-old-style-declaration'],
|
||||
}],
|
||||
['OS=="solaris"', {
|
||||
'defines': ['__EXTENSIONS__'],
|
||||
}],
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:2
|
||||
# indent-tabs-mode:nil
|
||||
# End:
|
||||
# vim: set expandtab tabstop=2 shiftwidth=2:
|
||||
|
174
deps/openssl/openssl/.gitignore
vendored
174
deps/openssl/openssl/.gitignore
vendored
@ -1,174 +0,0 @@
|
||||
# Ignore editor artefacts
|
||||
/.dir-locals.el
|
||||
|
||||
# Top level excludes
|
||||
/Makefile.orig
|
||||
/MINFO
|
||||
/TABLE
|
||||
/*.a
|
||||
/*.pc
|
||||
/rehash.time
|
||||
/inc.*
|
||||
/makefile.*
|
||||
/out.*
|
||||
/tmp.*
|
||||
/configdata.pm
|
||||
|
||||
# *all* Makefiles
|
||||
Makefile
|
||||
# ... except in demos
|
||||
!/demos/*/Makefile
|
||||
|
||||
# Links under apps
|
||||
/apps/CA.pl
|
||||
/apps/tsget
|
||||
/apps/tsget.pl
|
||||
/apps/md4.c
|
||||
|
||||
# Auto generated headers
|
||||
/crypto/buildinf.h
|
||||
/apps/progs.h
|
||||
/crypto/include/internal/*_conf.h
|
||||
/openssl/include/opensslconf.h
|
||||
/util/domd
|
||||
|
||||
# Executables
|
||||
/apps/openssl
|
||||
/test/sha256t
|
||||
/test/sha512t
|
||||
/test/gost2814789t
|
||||
/test/ssltest_old
|
||||
/test/*test
|
||||
/test/fips_aesavs
|
||||
/test/fips_desmovs
|
||||
/test/fips_dhvs
|
||||
/test/fips_drbgvs
|
||||
/test/fips_dssvs
|
||||
/test/fips_ecdhvs
|
||||
/test/fips_ecdsavs
|
||||
/test/fips_rngvs
|
||||
/test/fips_test_suite
|
||||
/test/ssltest_old
|
||||
/test/x509aux
|
||||
/test/v3ext
|
||||
|
||||
# Certain files that get created by tests on the fly
|
||||
/test/test-runs
|
||||
/test/buildtest_*
|
||||
|
||||
# Fuzz stuff.
|
||||
# Anything without an extension is an executable on Unix, so we keep files
|
||||
# with extensions. And we keep the corpora subddir versioned as well.
|
||||
# Anything more generic with extensions that should be ignored will be taken
|
||||
# care of by general ignores for those extensions (*.o, *.obj, *.exe, ...)
|
||||
/fuzz/*
|
||||
!/fuzz/README*
|
||||
!/fuzz/corpora
|
||||
!/fuzz/*.*
|
||||
|
||||
# Misc auto generated files
|
||||
/include/openssl/opensslconf.h
|
||||
/tools/c_rehash
|
||||
/tools/c_rehash.pl
|
||||
/util/shlib_wrap.sh
|
||||
/tags
|
||||
/TAGS
|
||||
/crypto.map
|
||||
/ssl.map
|
||||
|
||||
# Windows (legacy)
|
||||
/tmp32
|
||||
/tmp32.dbg
|
||||
/tmp32dll
|
||||
/tmp32dll.dbg
|
||||
/out32
|
||||
/out32.dbg
|
||||
/out32dll
|
||||
/out32dll.dbg
|
||||
/inc32
|
||||
/MINFO
|
||||
/ms/.rnd
|
||||
/ms/bcb.mak
|
||||
/ms/libeay32.def
|
||||
/ms/nt.mak
|
||||
/ms/ntdll.mak
|
||||
/ms/ssleay32.def
|
||||
/ms/version32.rc
|
||||
|
||||
# Files created on other branches that are not held in git, and are not
|
||||
# needed on this branch
|
||||
/include/openssl/asn1_mac.h
|
||||
/include/openssl/des_old.h
|
||||
/include/openssl/fips.h
|
||||
/include/openssl/fips_rand.h
|
||||
/include/openssl/krb5_asn.h
|
||||
/include/openssl/kssl.h
|
||||
/include/openssl/pq_compat.h
|
||||
/include/openssl/ssl23.h
|
||||
/include/openssl/tmdiff.h
|
||||
/include/openssl/ui_compat.h
|
||||
/test/fips_aesavs.c
|
||||
/test/fips_desmovs.c
|
||||
/test/fips_dsatest.c
|
||||
/test/fips_dssvs.c
|
||||
/test/fips_hmactest.c
|
||||
/test/fips_randtest.c
|
||||
/test/fips_rngvs.c
|
||||
/test/fips_rsagtest.c
|
||||
/test/fips_rsastest.c
|
||||
/test/fips_rsavtest.c
|
||||
/test/fips_shatest.c
|
||||
/test/fips_test_suite.c
|
||||
/test/shatest.c
|
||||
|
||||
##### Generic patterns
|
||||
# Auto generated assembly language source files
|
||||
*.s
|
||||
!/crypto/*/asm/*.s
|
||||
/crypto/arm*.S
|
||||
/crypto/*/*.S
|
||||
*.asm
|
||||
!/crypto/*/asm/*.asm
|
||||
|
||||
# Object files
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# editor artefacts
|
||||
*.swp
|
||||
.#*
|
||||
\#*#
|
||||
*~
|
||||
|
||||
# Certificate symbolic links
|
||||
*.0
|
||||
|
||||
# All kinds of executables
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
*.dylib.*
|
||||
*.dll
|
||||
*.dll.*
|
||||
*.exe
|
||||
*.pyc
|
||||
*.exp
|
||||
*.lib
|
||||
*.pdb
|
||||
*.ilk
|
||||
*.def
|
||||
*.rc
|
||||
*.res
|
||||
|
||||
# Misc generated stuff
|
||||
Makefile.save
|
||||
/crypto/**/lib
|
||||
/engines/**/lib
|
||||
/ssl/**/lib
|
||||
*.bak
|
||||
cscope.*
|
||||
*.d
|
||||
pod2htmd.tmp
|
||||
|
||||
# Windows manifest files
|
||||
*.manifest
|
1
deps/openssl/openssl/crypto/include/internal/bn_conf.h
vendored
Normal file
1
deps/openssl/openssl/crypto/include/internal/bn_conf.h
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../../config/bn_conf.h"
|
1
deps/openssl/openssl/crypto/include/internal/dso_conf.h
vendored
Normal file
1
deps/openssl/openssl/crypto/include/internal/dso_conf.h
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../../config/dso_conf.h"
|
1
deps/openssl/openssl/include/openssl/opensslconf.h
vendored
Normal file
1
deps/openssl/openssl/include/openssl/opensslconf.h
vendored
Normal file
@ -0,0 +1 @@
|
||||
#include "../../config/opensslconf.h"
|
81
deps/openssl/openssl_asm.gypi
vendored
Normal file
81
deps/openssl/openssl_asm.gypi
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
{
|
||||
'conditions': [
|
||||
['target_arch=="ppc" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix-gcc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix64-gcc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', {
|
||||
'includes': ['config/archs/linux-ppc64le/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc64/asm/openssl.gypi'],
|
||||
}, 'target_arch=="s390" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux32-s390x/asm/openssl.gypi'],
|
||||
}, 'target_arch=="s390x" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux64-s390x/asm/openssl.gypi'],
|
||||
}, 'target_arch=="arm" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-armv4/asm/openssl.gypi'],
|
||||
}, 'target_arch=="arm64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-aarch64/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-elf/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin-i386-cc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris-x86-gcc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN32/asm/openssl.gypi'],
|
||||
'rules': [
|
||||
{
|
||||
'rule_name': 'Assemble',
|
||||
'extension': 'asm',
|
||||
'inputs': [],
|
||||
'outputs': [
|
||||
'<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).obj',
|
||||
],
|
||||
'action': [
|
||||
'nasm.exe',
|
||||
'-f win32',
|
||||
'-o', '<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).obj',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
],
|
||||
}
|
||||
],
|
||||
}, 'target_arch=="ia32"', {
|
||||
'includes': ['config/archs/linux-elf/asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="freebsd"', {
|
||||
'includes': ['config/archs/BSD-x86_64/asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin64-x86_64-cc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris64-x86_64-gcc/asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN64A/asm/openssl.gypi'],
|
||||
'rules': [
|
||||
{
|
||||
'rule_name': 'Assemble',
|
||||
'extension': 'asm',
|
||||
'inputs': [],
|
||||
'outputs': [
|
||||
'<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).obj',
|
||||
],
|
||||
'action': [
|
||||
'nasm.exe',
|
||||
'-f win64',
|
||||
'-DNEAR',
|
||||
'-Ox',
|
||||
'-g',
|
||||
'-o', '<(INTERMEDIATE_DIR)/<(RULE_INPUT_ROOT).obj',
|
||||
'<(RULE_INPUT_PATH)',
|
||||
],
|
||||
}
|
||||
],
|
||||
}, 'target_arch=="x64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-x86_64/asm/openssl.gypi'],
|
||||
}, {
|
||||
# Other architectures don't use assembly
|
||||
'includes': ['config/archs/linux-x86_64/asm/openssl.gypi'],
|
||||
}],
|
||||
],
|
||||
}
|
68
deps/openssl/openssl_common.gypi
vendored
Normal file
68
deps/openssl/openssl_common.gypi
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
{
|
||||
'include_dirs': [
|
||||
'openssl/',
|
||||
'openssl/include/',
|
||||
'openssl/crypto/',
|
||||
'openssl/crypto/include/',
|
||||
'openssl/crypto/modes/',
|
||||
'config/',
|
||||
],
|
||||
# build options specific to OS
|
||||
'conditions': [
|
||||
[ 'OS=="aix"', {
|
||||
# AIX is missing /usr/include/endian.h
|
||||
'defines': [
|
||||
'__LITTLE_ENDIAN=1234',
|
||||
'__BIG_ENDIAN=4321',
|
||||
'__BYTE_ORDER=__BIG_ENDIAN',
|
||||
'__FLOAT_WORD_ORDER=__BIG_ENDIAN',
|
||||
'OPENSSLDIR="/etc/ssl"',
|
||||
'ENGINESDIR="/dev/null"',
|
||||
],
|
||||
}, 'OS=="win"', {
|
||||
'defines': [
|
||||
## default of Win. See INSTALL in openssl repo.
|
||||
'OPENSSLDIR="C:\Program Files\Common Files\SSL"',
|
||||
'ENGINESDIR="NUL"',
|
||||
'OPENSSL_SYS_WIN32', 'WIN32_LEAN_AND_MEAN', 'L_ENDIAN',
|
||||
'_CRT_SECURE_NO_DEPRECATE', 'UNICODE', '_UNICODE',
|
||||
],
|
||||
'cflags': [
|
||||
'-W3', '-wd4090', '-Gs0', '-GF', '-Gy', '-nologo','/O2',
|
||||
],
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'-lws2_32.lib',
|
||||
'-lgdi32.lib',
|
||||
'-ladvapi32.lib',
|
||||
'-lcrypt32.lib',
|
||||
'-luser32.lib',
|
||||
],
|
||||
},
|
||||
}, 'OS=="mac"', {
|
||||
'xcode_settings': {
|
||||
'WARNING_CFLAGS': ['-Wno-missing-field-initializers']
|
||||
},
|
||||
'defines': [
|
||||
'OPENSSLDIR="/System/Library/OpenSSL/"',
|
||||
'ENGINESDIR="/dev/null"',
|
||||
],
|
||||
}, 'OS=="solaris"', {
|
||||
'defines': [
|
||||
'OPENSSLDIR="/etc/ssl"',
|
||||
'ENGINESDIR="/dev/null"',
|
||||
'__EXTENSIONS__'
|
||||
],
|
||||
}, {
|
||||
# linux and others
|
||||
'cflags': ['-Wno-missing-field-initializers',
|
||||
## TODO: check gcc_version>=4.3
|
||||
'-Wno-old-style-declaration'],
|
||||
'defines': [
|
||||
'OPENSSLDIR="/etc/ssl"',
|
||||
'ENGINESDIR="/dev/null"',
|
||||
'TERMIOS',
|
||||
],
|
||||
}],
|
||||
]
|
||||
}
|
48
deps/openssl/openssl_no_asm.gypi
vendored
Normal file
48
deps/openssl/openssl_no_asm.gypi
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
{
|
||||
'defines': ['OPENSSL_NO_ASM'],
|
||||
'conditions': [
|
||||
['target_arch=="ppc" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix-gcc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="aix"', {
|
||||
'includes': ['config/archs/aix64-gcc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux" and node_byteorder =="little"', {
|
||||
'includes': ['config/archs/linux-ppc64le/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ppc64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-ppc64/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="s390" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux32-s390x/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="s390x" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux64-s390x/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="arm" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-armv4/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="arm64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-aarch64/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin-i386-cc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris-x86-gcc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN32/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="ia32"', {
|
||||
# noasm linux-elf for other ia32 platforms
|
||||
'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="freebsd"', {
|
||||
'includes': ['config/archs/BSD-x86_64/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="mac"', {
|
||||
'includes': ['config/archs/darwin64-x86_64-cc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="solaris"', {
|
||||
'includes': ['config/archs/solaris64-x86_64-gcc/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="win"', {
|
||||
'includes': ['config/archs/VC-WIN64A/no-asm/openssl.gypi'],
|
||||
}, 'target_arch=="x64" and OS=="linux"', {
|
||||
'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
|
||||
}, {
|
||||
# Other architectures don't use assembly
|
||||
'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
|
||||
}],
|
||||
],
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user