Commit Graph

11395 Commits (01e6632d701363034f52c0c04e9106b37a58086c)

Author SHA1 Message Date
Johan Bergström c7769d417b build: Expose xz compression level
On machines with limited resources a fair tradeoff could be trading
result size with less memory and cpu consumption. Expose a variable
that overrides the default (9).

Note: xz is often used to gain maximum possible compression, so
avoid lowering this if possible.

PR-URL: https://github.com/iojs/io.js/pull/1428
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-04-15 11:35:07 +10:00
Shigeki Ohtsu a530b2baf1 build: fix error message in configure
Replace Node.js to io.js in error messages.

Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-15 00:39:23 +09:00
Shigeki Ohtsu 4830b4bce8 deps: add docs to upgrade openssl
This document is intended to describe the procedure to upgrade openssl
from 1.0.1m to 1.0.2a in io.js.

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-15 00:39:19 +09:00
Shigeki Ohtsu deb9d23d7b test: fix error message check for openssl-1.0.2a
openssl-1.0.2a does not include function name of SSL3_GET_CLIENT_HELLO
in the error message

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-15 00:39:14 +09:00
Shigeki Ohtsu 92dfb794f9 build: enable ssl support on arm64
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-15 00:39:10 +09:00
Shigeki Ohtsu 11bec72c87 deps: update asm files for openssl-1.0.2a
asm files are generated as
- In `deps/openssl/asm/`, make with CC=gcc and ASM=nasm
- In `deps/openssl/asm_obsolute/`, make with no envs for compilers

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-15 00:39:04 +09:00
Shigeki Ohtsu a1c9ef3142 deps, build: add support older assembler
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-15 00:38:57 +09:00
Shigeki Ohtsu 53924d8ebe deps: update asm Makefile for openssl-1.0.2a
This includes following changes,
 - Updated asm files for each platforms which are required in
 openssl-1.0.2a.
 - Some perl files need CC and ASM envs. Added a check if these envs
 exist. Followed asm files are to be generated with CC=gcc and
 ASM=nasm on Linux. See
 `deps/openssl/openssl/crypto/sha/asm/sha512-x86_64.pl`
 - Added new 32bit targets/rules with a sse2 flag (OPENSSL_IA32_SSE2)
 to generate asm for use SSE2.
 - Generating sha512 asm files in x86_64 need output filename which
 has 512. Added new rules so as not to use stdout for outputs.
 - PERLASM_SCHEME of linux-armv4 is `void` as defined in openssl
 Configure. Changed its target/rule and all directories are moved from
 arm-elf-gas to arm-void-gas.

deps: add arm64 support in openssl/asm/Makefile

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-15 00:38:49 +09:00
Shigeki Ohtsu 418e839456 deps: update openssl.gyp/gypi for openssl-1.0.2a
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-15 00:38:44 +09:00
Shigeki Ohtsu 02f12ab666 deps: update opensslconf.h for 1.0.2a
just type `make` in `deps/openssl/conf` then opensslconf.h in all
architectures are updated.

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-15 00:38:39 +09:00
Shigeki Ohtsu eb7a23595f deps: add x32 and arm64 support for opensslconf.h
linux-x32 and linux-aarch64(arm64) are officially supported in
openssl-1.0.2. With this fix opensslconf.h for these new architectures
can be generated by Makefile.

The patch for opensslconf.h of linux-x32 with Makefile was removed.

For the fix of opensslconf.h in WIN32/WIN64, adding defines of
OPENSSL_NO_DYNAMIC_ENGINE and OPENSSL_NO_CAPIENG move to openssl.gypi
so that we no longer need insert a patch with Makefile and removed it.

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-15 00:38:33 +09:00
Shigeki Ohtsu 033a663127 deps: replace all headers in openssl
Change all openssl/include/openssl/*.h to include resolved symbolic
links and openssl/crypto/opensslconf.h to refer config/opensslconf.h

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-15 00:38:25 +09:00
Shigeki Ohtsu 116c54692a openssl: fix keypress requirement in apps on win32
Reapply b910613792 .

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-15 00:38:19 +09:00
Shigeki Ohtsu ae8831f240 deps: backport openssl patch of alt cert chains 1
This a backport of da084a5ec6cebd67ae27f2463ebe4a50bb840fa5 in
https://github.com/openssl/openssl by Matt Caswell <matt@openssl.org> as

In certain situations the server provided certificate chain may no
longer be valid. However the issuer of the leaf, or some intermediate
cert is in fact in the trust store.

When building a trust chain if the first attempt fails, then try to
see if alternate chains could be constructed that are trusted.

deps: backport openssl patch of alt cert chains 2

This a backport of 15dba5be6a4482a9ad7e5b846291f31e97e338ca in
https://github.com/openssl/openssl by Matt Caswell <matt@openssl.org> as

Add flag to inhibit checking for alternate certificate chains. Setting this
behaviour will force behaviour as per previous versions of OpenSSL

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-15 00:38:11 +09:00
Shigeki Ohtsu 71316c46d9 deps: fix asm build error of openssl in x86_win32
See
https://mta.openssl.org/pipermail/openssl-dev/2015-February/000651.html

iojs needs to stop using masm and move to nasm or yasm on Win32.

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-15 00:38:02 +09:00
Fedor Indutny d293a4f096 deps: fix openssl assembly error on ia32 win32
`x86masm.pl` was mistakenly using .486 instruction set, why `cpuid` (and
perhaps others) are requiring .686 .

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>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-04-15 00:37:24 +09:00
Shigeki Ohtsu e4872d7405 deps: upgrade openssl to 1.0.2a
This just replaces all sources in deps/openssl/openssl to originals in
https://www.openssl.org/source/openssl-1.0.2a.tar.gz

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-15 00:36:13 +09:00
Rod Vagg 50e9fc197d Working on v1.7.2 2015-04-14 23:26:14 +10:00
Rod Vagg 44e1f68fb6 2015-04-14 io.js v1.7.1 Release
Notable changes:

* build: A syntax error in the Makefile for release builds caused
  1.7.0 to be DOA and unreleased. (Rod Vagg) #1421
2015-04-14 22:58:04 +10:00
Rod Vagg aee86a21f2 build: fix RELEASE check
fixes broken 1.7.0 build, unreviewed quick patch

Ref: https://github.com/iojs/io.js/pull/1405
PR-URL: https://github.com/iojs/io.js/pull/1421
2015-04-14 22:53:35 +10:00
Rod Vagg 491c3c80be Working on v1.7.1 2015-04-14 22:12:33 +10:00
Rod Vagg a75149fd6f 2015-04-14 io.js v1.7.0 Release
Notable changes:

* C++ API: Fedor Indutny contributed a feature to V8 which has been
  backported to the V8 bundled in io.js. SealHandleScope allows a C++
  add-on author to seal a HandleScope to prevent further, unintended
  allocations within it. Currently only enabled for debug builds of
  io.js. This feature helped detect the leak in #1075 and is now
  activated on the root HandleScope in io.js. (Fedor Indutny) #1395.
* ARM: This release includes significant work to improve the state of
  ARM support for builds and tests. The io.js CI cluster's ARMv6,
  ARMv7 and ARMv8 build servers are now all (mostly) reporting passing
  builds and tests.
  - ARMv8 64-bit (AARCH64) is now properly supported, including a
    backported fix in libuv that was mistakenly detecting the
    existence of `epoll_wait()`. (Ben Noordhuis) #1365.
  - ARMv6: #1376 reported a problem with Math.exp() on ARMv6 (incl
    Raspberry Pi). The culprit is erroneous codegen for ARMv6 when
    using the "fast math" feature of V8. --nofast_math has been turned
    on for all ARMv6 variants by default to avoid this, fast math can
    be turned back on with --fast_math. (Ben Noordhuis) #1398.
  - Tests: timeouts have been tuned specifically for slower platforms,
    detected as ARMv6 and ARMv7. (Roman Reiss) #1366.
* npm: Upgrade npm to 2.7.6. See the release notes
  (https://github.com/npm/npm/releases/tag/v2.7.6) for details.
2015-04-14 22:11:29 +10:00
Johan Bergström fd90b33b94 build: validate options passed to configure
Some variables like dest arch or os are now validated to avoid
build issues. Move defaults to optparse default while at it.

PR-URL: https://github.com/iojs/io.js/pull/1335
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-14 18:12:52 +10:00
Johan Bergström 04b02f5e34 build: Remove deprecated flags
Remove flags that were deprecated in f31502926 (soon 3 years ago).

PR-URL: https://github.com/iojs/io.js/pull/1407
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-14 08:22:30 +10:00
Dan Varga 39d395c966 build: minor changes to fix rpm build
PR-URL: https://github.com/iojs/io.js/pull/1408
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-13 17:53:37 +02:00
Johan Bergström 66db9241cb tools: Remove unused files
Stray files used in the previous release process

PR-URL: https://github.com/iojs/io.js/pull/1406
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-13 18:47:14 +10:00
Johan Bergström f9a2d31b32 build: Simplify fetching release version
PR-URL: https://github.com/iojs/io.js/pull/1405
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-04-13 18:05:49 +10:00
Fedor Indutny a07c69113a src: use global SealHandleScope
Helps to find Handle leaks in Debug mode.

PR-URL: https://github.com/iojs/io.js/pull/1395
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-11 21:07:05 +02:00
Fedor Indutny a5244d3a39 deps: backport 1f8555 from v8's upstream
Original commit message:

    api: introduce SealHandleScope

    When debugging Handle leaks in io.js we found it very convenient to be
    able to Seal some specific (root in our case) scope to prevent Handle
    allocations in it, and easily find leakage.

    R=yangguo
    BUG=

    Review URL: https://codereview.chromium.org/1079713002

    Cr-Commit-Position: refs/heads/master@{#27766}

Should help us identify and fix Handle leaks in core and user-space code.

NOTE: Works only in Debug build now, but is still better than nothing.

PR-URL: https://github.com/iojs/io.js/pull/1395
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-11 21:06:40 +02:00
Ben Noordhuis a4d88475fa src: disable fast math only on armv6
Don't disable fast math on ARMv7, only ARMv6.  I hope I got all the
v6 subarchs.

PR-URL: https://github.com/iojs/io.js/pull/1398
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-04-11 21:04:38 +02:00
Ben Noordhuis e306c78f83 src: disable fast math on arm
The "fast" implementation of Math.exp() and Math.tanh() emits ARMv7
movt/movw instructions on ARMv6 (notably, the original Raspberry Pi.)

Disable fast math for now.  The adventurous can enable it again with
the --fast_math switch.

PR-URL: https://github.com/iojs/io.js/pull/1398
Refs: https://github.com/iojs/io.js/issues/1376
Reviewed-By: Roman Reiss <me@silverwind.io>
V8-Bug: https://code.google.com/p/v8/issues/detail?id=4019
2015-04-11 21:03:48 +02:00
Marat Abdullin cd38a4af8f build: support building io.js as a static library
One static library could not be bundled into another, that's why
it's necessary to skip `-force_load` and `--whole-archive` linker
options to build io.js itself as a static library.

`node_target_type` variable has been added to node.gyp, along
with `--enable-static` option in configure script.

Fixes: https://github.com/iojs/io.js/issues/686
PR-URL: https://github.com/iojs/io.js/pull/1341
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-11 06:53:17 +02:00
Jeremiah Senkpiel 93a1a07ef4 doc: remove keepAlive options from http.request
These can only be specified in the options for http.Agent

Fixes: https://github.com/iojs/io.js/issues/1300
PR-URL: https://github.com/iojs/io.js/pull/1392
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-04-11 10:46:17 -04:00
Alex Yursha 3ad6ea7c38 doc: remove redundant parameter in `end` listener.
PR-URL: https://github.com/iojs/io.js/pull/1387
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-04-11 06:53:41 +02:00
Jackson Tian 2bc3532461 doc: document Console class
document Console class to tell user can use it.

PR-URL: https://github.com/iojs/io.js/pull/1388
Fixes: https://github.com/iojs/io.js/issues/1359
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-04-11 06:47:30 +02:00
Bert Belder 907aaf325a win,node-gyp: optionally allow node.exe/iojs.exe to be renamed
On Windows, when node or io.js attempts to dynamically load a compiled
addon, the compiled addon tries to load node.exe or iojs.exe again -
depending on which import library the module used when it was linked.
This causes many compiled addons to break when node.exe or iojs.exe are
renamed, because when the binary has been renamed the addon DLL can't
find the (right) .exe file to load its imports from.

This patch gives compiled addon developers an option to overcome this
restriction by compiling a delay-load hook into their binary. The
delay-load hook ensures that whenever a module tries to load imports
from node.exe/iojs.exe, it'll just look at the process image, thereby
making the addon work regardless of what name the node/iojs binary has.

To enable this feature, the addon developer must set the
'win_delay_load_hook' option to 'true' in their binding.gyp file, like
this:

```
{
  'targets': [
    {
      'target_name': 'ernie',
      'win_delay_load_hook': 'true',
      ...
```

Bug: https://github.com/iojs/io.js/issues/751
Bug: https://github.com/iojs/io.js/issues/965
Upstream PR: https://github.com/TooTallNate/node-gyp/pull/599

PR-URL: https://github.com/iojs/io.js/pull/1251
Reviewed-By: Rod Vagg <rod@vagg.org>

PR-URL: https://github.com/iojs/io.js/pull/1266
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 14:24:36 -07:00
cjihrig 09d4a286ea deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e,
5de334c230, and
da730c76e9. This commit squashes
them into a single commit.

PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 14:24:35 -07:00
Forrest L Norvell cc8376ae67 deps: upgrade npm to 2.7.6
PR-URL: https://github.com/iojs/io.js/pull/1390
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-04-10 14:22:47 -07:00
Alex Kocharin f0bf6bb024 readline: fix calling constructor without new
Previously, we detected options object based on amount of arguments
supplied. But if we're calling readline without new operator,
constructor gets re-called and will always have 4 arguments.

PR-URL: https://github.com/iojs/io.js/pull/1385
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 10:56:19 +02:00
Shigeki Ohtsu 8bc8bd4bc2 tools: add to install deps/openssl/config/archs
PR-URL: https://github.com/iojs/io.js/pull/1377
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 09:54:25 +09:00
Shigeki Ohtsu 5b0e5755a0 deps: generate opensslconf.h for architectures
PR-URL: https://github.com/iojs/io.js/pull/1377
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 09:54:17 +09:00
Shigeki Ohtsu 7d14aa0222 deps: add Makefile to generate opensslconf.h
This Makefile executes ../openssl/Configure {target} and copy
generated `../openssl/crypto/opensslconf.h` into
`archs/{target}/opensslconf.h`. with the target list that is defined
in ARCS. Several files are copied for backup and cleared so as not to
change the files in `../openssl`.

This also applies four fixes as below by using perl script so as to
meet iojs build requirements.

- all architectures
Remove define of OPENSSL_CPUID_OBJ because it is defined in
openssl.gypi so as to avoid build error with --openssl-no-asm

- VC-WIN32 and VC-WIN64A
OPENSSL_NO_DYNAMIC_ENGINE is needed for building static
library. OPENSSL_NO_CAPIENG is needed to avoid build errors on
Win. See the comments in `deps/openssl/openssl/engines/e_capi.c` for
detail.

- linux-x32
This fix was made by comparing define values of opensslconf.h which
was generated `Configure linux-x32' in openssl-1.0.2a

- darwin64-x86_64-cc
The current openssl release does not use RC4 asm since it explicitly
specified as `$asm=~s/rc4\-[^:]+//;` in
https://github.com/openssl/openssl/blob/OpenSSL_1_0_1-stable/Configure#L584
But iojs has used RC4 asm on MacOS for long time. Fix type of RC4_INT
into `unsigned int` in opensslconf.h of darwin64-x86_64-cc to work on
the RC4 asm.

PR-URL: https://github.com/iojs/io.js/pull/1377
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 09:53:56 +09:00
Shigeki Ohtsu 29a3301461 deps: make opensslconf.h include each target arch
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 iojs, 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}/opensslconf.h`. The Makefile alos fixes several
defines to meet iojs build requirements.

Here is a map table of configure options in iojs, target arch of
Configure in OpenSSL and CI support.

| --dest-os | --dest-cpu | OpenSSL target arch  | CI  |
| --------- | ---------- | -------------------- | --- |
| linux     | ia32       | linux-elf            | o   |
| linux     | x32        | patched linux-x86_64 | -   |
| linux     | x64        | linux-x86_64         | o   |
| linux     | arm        | linux-armv4          | o   |
| linux     | arm64      | N/A                  | -   |
| mac       | ia32       | darwin-i386-cc       | o   |
| 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              | o   |
| 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         |
| ------------------ | ------------------------- |
| 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            |

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`.

This also contains to add two new defines for all platform in the
bottom for GOST and Padlock engines are not included in iojs.

PR-URL: https://github.com/iojs/io.js/pull/1377
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-10 09:53:48 +09:00
Brendan Ashworth 1219e7466c lib: reduce process.binding() calls
This commit better handles calls to process.binding() in lib/ by
no longer lazy loading the bindings (the load times themselves are
rather miniscule compared to the load time of V8) and never reloading
the bindings (which is 172 times slower than referencing a variable with
the same value).

PR-URL: https://github.com/iojs/io.js/pull/1367
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-09 10:51:19 -07:00
Jeremiah Senkpiel 69bc1382b7 doc: properly indent http.Agent keepAlive options
Fixes: https://github.com/iojs/io.js/issues/1300
PR-URL: https://github.com/iojs/io.js/pull/1384
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-04-09 11:23:39 -04:00
Roman Reiss 7049d7b474 test: increase timeouts on ARM
This commit introduces platform-specific test timeouts for the ARM
architectures. ARMv6 is notoriously slow so gets very large timeouts on
both the timeout value for each test, as well as certain problematic
individual tests. ARMv7 and ARMv8 also get slightly increased headroom.

PR-URL: https://github.com/iojs/io.js/pull/1366
Fixes: https://github.com/iojs/io.js/issues/1343
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-09 15:10:34 +02:00
Jackson Tian d2b62a4973 benchmark: don't check wrk in non-http benchmark
When running a non-http benchmark, there is no need the check for the
wrk tool so move the wrk check into the http method.

PR-URL: https://github.com/iojs/io.js/pull/1368
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-04-09 12:09:09 +02:00
Roman Reiss b464d467a2 doc: update curl usage in COLLABORATOR_GUIDE
Github now redirects the patch urls hosted on github.com, making it
necessary to enable curl redirect handling to obtain patches in the
merge process.

Example (before and after):
https://github.com/iojs/io.js/pull/1382.patch
https://patch-diff.githubusercontent.com/raw/iojs/io.js/pull/1382.patch

PR-URL: https://github.com/iojs/io.js/pull/1382
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-04-09 11:47:55 +02:00
Andrew Crites 61c0e7b70f doc: update CONTRIBUTING links.
* Correct link to current collaborator list
* Correct link to Rust CoC

PR-URL: https://github.com/iojs/io.js/pull/1380
Reviewed-By: Roman Reiss <me@silverwind.io>
2015-04-09 11:33:28 +02:00
Rod Vagg 8d467e521c doc: add TC meeting 2015-03-18 minutes
PR-URL: https://github.com/iojs/io.js/pull/1370
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-04-09 13:36:16 +10:00