aboutsummaryrefslogtreecommitdiff
path: root/common.gypi
AgeCommit message (Collapse)Author
2017-11-01build,src: Add CloudABI as a POSIX-like runtime environment.Ed Schouten
CloudABI is a compact POSIX-like runtime that makes use of capability-based security. More details: https://github.com/NuxiNL/cloudlibc * src: Disable use of pwd.h, grp.h and get*uid() on CloudABI. As CloudABI is intended to run applications in cluster contexts (e.g., on Kubernetes), they are oblivious of UNIX credentials. Extend the existing preprocessor checks to disable any use of these interfaces, just like on Windows, Android, etc. * src: Explicitly include <netdb.h>. cares_wrap.cc calls into functions like getnameinfo() and getaddrinfo(). These functions tend to be available implicitly through <uv.h>, but we'd better still include this header explicitly. On CloudABI, we make use of a custom implementation of libuv that does not implicitly include header files like <netdb.h>. PR-URL: https://github.com/nodejs/node/pull/16612 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-29deps: V8: backport b1cd96e from upstreamAli Ijaz Sheikh
Original commit message: [inspector] added V8InspectorClient::maxAsyncCallStackDepthChanged R=dgozman@chromium.org Bug: none Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0fa10978266feb3c3907ce1f3386ae7a34a33582 Reviewed-on: https://chromium-review.googlesource.com/726490 Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#48705} PR-URL: https://github.com/nodejs/node/pull/16308 Refs: https://github.com/v8/v8/commit/b1cd96ec4b836348bcffba357cd29076ab3ae48b Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Timothy Gu <timothygu99@gmail.com>
2017-10-28deps: cherry-pick e0d64dc from upstream V8Michaël Zasso
Original commit message: [heap] Print the number of chunks in unmapper queue in --trace-gc-nvp Bug: chromium:771966 Change-Id: I146b279c4713b7dd716c6d55ca5e6c6e23a3ad7e Reviewed-on: https://chromium-review.googlesource.com/704740 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48338} Refs: https://github.com/v8/v8/commit/e0d64dc67c6abf36a37efdc6e8e6903bb114ebd3 Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642 Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966 PR-URL: https://github.com/nodejs/node/pull/16490 Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-10-28deps: cherry-pick 676c413 from upstream V8Michaël Zasso
Original commit message: [heap] Fix threshold for delayed chunks after 2c7561. Bug: chromium:771966 Change-Id: Iac5ee55c0d31de477f21f091f4be015a1ca8d00c Reviewed-on: https://chromium-review.googlesource.com/702382 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48316} Refs: https://github.com/v8/v8/commit/676c41321a948c08d6a43de43fe9b1d60ae81c00 Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642 Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966 PR-URL: https://github.com/nodejs/node/pull/16490 Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-10-28deps: cherry-pick 2c75616 from upstream V8Michaël Zasso
Original commit message: [heap] Ensure progress in unmapping memory chunks. If sweeping is not making progress and there are many young generation GCs happening, then this can lead to accumulation of memory chunks in the unmapper queue. Bug: chromium:771966 Change-Id: Ief73ada0d17198a80b668850c6d2e7ea413113e7 Reviewed-on: https://chromium-review.googlesource.com/702479 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48312} Refs: https://github.com/v8/v8/commit/2c75616028e75883e28df2c6d8dd2a6bfe47f718 Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642 Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966 PR-URL: https://github.com/nodejs/node/pull/16490 Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-10-24build,win: set /MP separately in Debug and ReleaseNikolai Vavilov
Setting /MP globally causes it to appear twice in the command line due to a GYP bug, which causes the project to be rebuilt unconditionally due to an msbuild bug. PR-URL: https://github.com/nodejs/node/pull/16415 Fixes: https://github.com/nodejs/node/issues/16367 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Minwoo Jung <minwoo@nodesource.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-23deps: cherry-pick 37a3a15c3 from V8 upstreamFranziska Hinkelmann
Original commit message: [api] Intercept DefineProperty after Descriptor query Analog to other interceptors, intercept the DefineProperty call only after obtaining the property descriptor. This behavior allows us to mirror calls on a sandboxed object as it is needed in Node. See for example https://github.com/nodejs/node/pull/13265 Bug: Change-Id: I73b8f8908d13473939b37fb6727858d0bee6bda3 Reviewed-on: https://chromium-review.googlesource.com/725295 Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#48683} PR-URL: https://github.com/nodejs/node/pull/16294 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-10-21build,win: use /MP for debug buildsNikolai Vavilov
PR-URL: https://github.com/nodejs/node/pull/16333 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-19build, windows: use /bigobj for debug buildsNikolai Vavilov
PR-URL: https://github.com/nodejs/node/pull/16289 Fixes: https://github.com/nodejs/node/issues/16288 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-10-18deps: backport 0f1dfae from V8 upstreamTobias Tebbi
Original commit message: avoid constructor inheritance due to compilation issues Constructor inheritance of a templated constructor is causing compilation issues for node.js: https: //github.com/nodejs/node/pull/15362#issue-257007421 Change-Id: I7d099ff5a1a2fd5b19c11112ddef8fe824e509f7 Reviewed-on: https://chromium-review.googlesource.com/707008 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48445} Refs: https://github.com/v8/v8/commit/0f1dfae0501ffa5086c34412e0cb3b229bd570de PR-URL: https://github.com/nodejs/node/pull/15362 Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-10-18deps: v8: fix potential segfault in profilerAli Ijaz Sheikh
This change fixes a potential segfault in the sampling heap profiler. This landed as part of a larger change upstream [1]. This is the minimal backport that avoids the segfault. [1]: https://git.io/vdTYL PR-URL: https://github.com/nodejs/node/pull/15498 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-18deps: cherry-pick 9b21865822243 from V8 upstreamAnna Henningsen
Original commit message: [api] Add optional data pointer to GC callbacks This can be useful when there may be multiple callbacks attached by code that's not directly tied to a single isolate, e.g. working on a per-context basis. This also allows rephrasing the global non-isolate APIs in terms of this new API, rather than working around it inside `src/heap`. TBR=hpayer@chromium.org Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I2e490ec40d1a34ea812f25f41ef9741d2116d965 Reviewed-on: https://chromium-review.googlesource.com/647548 Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#47923} PR-URL: https://github.com/nodejs/node/pull/15391 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-10-18build: add V8 embedder version stringMichaël Zasso
After this commit, `process.versions.v8` will look like: "6.0.287.53-node.0". The goal is that everytime we apply a non-official patch to `deps/v8`, we increment our own number instead of V8's patch level. This number must be set back to 0 after major V8 updates. Fixes: https://github.com/nodejs/node/issues/15698 PR-URL: https://github.com/nodejs/node/pull/15785 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-10-15build: set disable_glibcxx_debug flagAnna Henningsen
This breaks a few tests when Node is built in debug mode, because V8 is built with `-D_GLIBCXX_DEBUG=1` and Node is built without, which makes e.g. `std::vector` ABI-incompatible between the two. PR-URL: https://github.com/nodejs/node/pull/16159 Reviewed-By: James Snell <jasnell@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-07-22tools: skip workaround for newer llvmnanaya
PR-URL: https://github.com/nodejs/node/pull/14077 Fixes: https://github.com/nodejs/node/issues/14076 Refs: https://svnweb.freebsd.org/ports/head/www/node/Makefile?revision=444555&view=markup Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-05-11build: fix ninja build failureDaniel Bevenius
When working on commit 6a09a69ec9d36b705e9bde2ac1a193566a702d96 ("build: enable cctest to use generated objects") I did not take into account building with ninja: $ ./configure $ tools/gyp_node.py -f ninja $ ninja -C out/Release $ ln -fs out/Release/node node When ninja generated the ninja build files, src files that are relative to the src directory will be named with a dot instead of a path separator, for example: out/Release/obj/src/node/node.o would instead become: out/Release/obj/src/node.node.o This commit adds an additional variable for the type of object separator used for this case. Currently the check for if ninja is being used is a normal if statement as are the following os checks (win and aix). But the win and aix ones should only be evaluated if the build is not generated by ninja. This commit turns this logic into an if ninja else statement. PR-URL: https://github.com/nodejs/node/pull/12484 Fixes: https://github.com/nodejs/node/issues/12448 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
2017-05-06build: fix V8 build on FreeBSDMichaël Zasso
Use the -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 flag because on FreeBSD std::pairs copy constructor is non-trivial. Refs: https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html Refs: https://github.com/gliaskos/freebsd-chromium/blob/master/www/chromium/Makefile#L202-L205 PR-URL: https://github.com/nodejs/node/pull/12784 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
2017-03-31build: always use V8_ENABLE_CHECKS in debug modeAnna Henningsen
Define `V8_ENABLE_CHECKS` in `common.gypi` for the debug mode. Without this, these checks would only be present in the object files generated from the V8 build, and so for inline functions in v8.h multiple different definitions could be generated, where one definition includes the check and the other does not. Refs: https://github.com/nodejs/node/pull/11975#discussion_r108005423 PR-URL: https://github.com/nodejs/node/pull/12029 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Jason Ginchereau <jasongin@microsoft.com> Reviewed-By: Hitesh Kanwathirtha <hiteshk@microsoft.com>
2017-03-24build: enable cctest to use generated objectsDaniel Bevenius
This commit tries to make it simpler to add unit tests (cctest) for code that needs to test node core funtionality but that might not be appropriate as an addon or a JavaScript test. An example of this could be adding functionality targeted for situations when Node itself is embedded. Currently it was not as easy, or efficient, as one would have hoped to add such tests. The object output directories vary for different operating systems which we need to link to so that we don't have an additional compilation step. PR-URL: https://github.com/nodejs/node/pull/11956 Ref: https://github.com/nodejs/node/pull/9163 Reviewed-By: James M Snell <jasnell@gmail.com>
2017-03-17build: mac OBJ_DIR should point to obj.targetDaniel Bevenius
I think there might be an issue with the value of OBJ_DIR when using a "mac" os. The value is currently specified in common.gypi which is included by node.gyp: 'OBJ_DIR': '<(PRODUCT_DIR)/obj', In the generated Makefile (out/Makefile) the object output directory is: obj := $(builddir)/obj And in the included node.target.mk we have the OBJS declared: OBJS := \ $(obj).target/$(TARGET)/src/async-wrap.o \ $(obj).target/$(TARGET)/src/cares_wrap.o \ If OBJ_DIR is used in node.gyp to point to generated object files on mac they will not be found. PR-URL: https://github.com/nodejs/node/pull/11857 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
2017-03-10s390: enable march=z196Junliang Yan
PR-URL: https://github.com/nodejs/node/pull/11730 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-02-16build: fix building with ninja on linuxKenan Yildirim
On Linux, `ninja` appears to place `libv8_base.a` inside `OBJ_DIR`, as opposed to `ninja` on OS X which places it outside of that directory. Furthermore, the expected `OBJ_DIR` value (`obj.target/`) is actually just `obj/` for `ninja`. This patch solves both of these issues by setting `OBJ_DIR` and `V8_BASE` to the correct values for `ninja` on Linux specifically. PR-URL: https://github.com/nodejs/node/pull/11348 Fixes: https://github.com/nodejs/node/issues/9861 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
2017-02-09build: disable C4267 conversion compiler warningBen Noordhuis
Disable "warning C4267: conversion from 'size_t' to 'int', possible loss of data". Many originate from our dependencies and their sheer number drowns out other, more legitimate warnings. PR-URL: https://github.com/nodejs/node/pull/11205 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-10-28build: use wxneeded on openbsdAaron Bieber
On OpenBSD 6.0 and greater W^X is enabled by default. All executables that violate W^X need to be marked with PT_OPENBSD_WXNEEDED. In addition to this, they must be executed from a filesystem mounted with 'wxallowed'. More info on W^X: https://en.wikipedia.org/wiki/W%5EX PR-URL: https://github.com/nodejs/node/pull/9232 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-09-22build: use libc++ on OSXAli Ijaz Sheikh
V8 now depends on C++11 runtime features. On OSX this requires us to link against the libc++ library rather than the deprecated default that is provided with -mmacosx-version-min=10.7. PR-URL: https://github.com/nodejs/node/pull/8317 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michaël Zasso <targos@protonmail.com>
2016-09-22build: define icu_use_data_file_flagAli Ijaz Sheikh
v8.gyp expects this to be defined by the embedder PR-URL: https://github.com/nodejs/node/pull/8317 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Michaël Zasso <targos@protonmail.com>
2016-09-22build: update V8 gypfile pathsMichaël Zasso
The location of various gypfiles has changed in V8 5.2. PR-URL: https://github.com/nodejs/node/pull/8317 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2016-08-09build: turn on thin static archivesBen Noordhuis
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete tooling on one of Joyent's platforms. The last binutils versions that didn't support them was released in 2007 so I think it's safe to assume we can drop support for that now - except on SmartOS, where the tooling still has a distinctive vintage feel to it. Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% - and speed up the final linking step because it doesn't have to assemble 50 MB of static archives (twice! - first to create the archive, then to copy it to PRODUCT_DIR). The archives are just 3.5 MB now and no longer copied around. PR-URL: https://github.com/nodejs/node/pull/7957 Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: James M Snell <jasnell@gmail.com>
2016-08-05build: windows sharedlib supportStefan Budeanu
Added "dll" option to vcbuild.bat Insure that Unix SO name is not used on Windows (i.e. produce a .dll file) Insure that Node and its V8 dependency link against the Visual C++ Runtime dynamically. Requires backported V8 patch, see PR 7802. Ref: https://github.com/nodejs/node/pull/7802 PR-URL: https://github.com/nodejs/node/pull/7487 Reviewed-By: Alexis Campailla <alexis@janeasystems.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-08-01build: don't link against liblog on host systemBen Noordhuis
Don't link binaries that run on the host system against liblog, it breaks cross-compiling for android. Fixes: https://github.com/nodejs/node/issues/7731 PR-URL: https://github.com/nodejs/node/pull/7762 Reviewed-By: Anna Henningsen <anna@addaleax.net>
2016-07-05build: enable big toc for release builds in AIXGireesh Punathil
AIX linker has a table of contents with default size 64K The recent code inclusions in V8 brings in lot of new symbols which necessitates to increase this default. Please note that the debug build already has this flag Fixes: https://github.com/nodejs/node/issues/7500 PR-URL: https://github.com/nodejs/node/pull/7508 Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-06-28build: configure --sharedStefan Budeanu
Add configure flag for building a shared library that can be embedded in other applications (like Electron). Add flags --without-bundled-v8 and --without-v8-platform to control V8 dependencies used. PR-URL: https://github.com/nodejs/node/pull/6994 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2016-05-10build: don't compile with -B, reduxBen Noordhuis
It looks like suppressing `-B` and `-fuse-ld=gold` from common.gypi is not very reliable. I'm positive it worked when commit 3cdb506 ("build: don't compile with -B") was merged but subsequent updates appear to have broken it again. Take the nuclear option and disable them from `tools/node_gyp.py`. Fixes: https://github.com/nodejs/node/issues/6603 PR-URL: https://github.com/nodejs/node/pull/6650 Refs: https://github.com/nodejs/node/pull/6393 Reviewed-By: Anna Henningsen <anna@addaleax.net>
2016-04-28build: unbreak -prof, disable PIE on OS XBen Noordhuis
Commit 204f3a8 ("build: Bump MACOSX_DEPLOYMENT_TARGET to 10.7") unwittingly turned on new ASLR features that make `-prof` unusable for profiling C++ code, breaking `test/parallel/test-tick-processor.js` in the process. Build with `-Wl,-no_pie` for now. Fixes: https://github.com/nodejs/node/issues/5903 PR-URL: https://github.com/nodejs/node/pull/6453 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
2016-04-27build: don't compile with -BBen Noordhuis
Turn off the custom toolchain, we don't bundle ld.gold. It's not that useful anyway because it uses a fixed path. For people that do use a custom toolchain, there is the GCC_EXEC_PREFIX environment variable. PR-URL: https://github.com/nodejs/node/pull/6393 Reviewed-By: Anna Henningsen <anna@addaleax.net>
2016-04-26build: Bump MACOSX_DEPLOYMENT_TARGET to 10.7Сковорода Никита Андреевич
Refs: https://github.com/nodejs/build/issues/367 libuv is going to drop 10.6 in v2. Ref: https://github.com/libuv/libuv/pull/758 OS X versions below 10.9 are not supported by Apple anymore and do not receive security patches. PR-URL: https://github.com/nodejs/node/pull/6402 Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Evan Lucas <evanlucas@me.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Myles Borins <myles.borins@gmail.com>
2016-04-07build: remove -f{data,function}-sections flagsBen Noordhuis
We don't link with `--gc-sections` because it's unreliable with some toolchains, so all these flags do is make the compiler generate slightly worse code. Drop them. Refs: https://github.com/nodejs/node/pull/6056 PR-URL: https://github.com/nodejs/node/pull/6077 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2016-03-29build: enable compilation for linuxOneMichael Dawson
Changes to Node core in order to allow compilation for linuxOne. The ../archs/linux32-s390x/opensslconf.h and ../archs/linux64-s390x/opensslconf.h were automatically generated by running make linux-ppc linux-ppc64 in the deps/openssl/config directory as per our standard practice After these changes we still need a version of v8 which supports linuxOne but that will be coming soon in the 5.1 version of v8. Until then with these changes we'll be able to create a hybrid build which pulls in v8 from the http://github/andrewlow repo. PR-URL: https://github.com/nodejs/node/pull/5941 Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-03-27build: add missing `openssl_fips%` to common.gypiFedor Indutny
See: atom/node@cba512d493d968afb203e28ed01e8d345fc9c9f4 PR-URL: https://github.com/nodejs/node/pull/5919 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2016-03-22build: add suport for x86 architectureRobert Chiras
Modified android-configure script to support also x86 arch. Currently added support only for ia32 target arch. Also, compile openssl without asm, since using the asm sources will make node fail to run on Android, because it adds text relocations. Signed-off-by: Robert Chiras <robert.chiras@intel.com> PR-URL: https://github.com/nodejs/node/pull/5544 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-11-05build: omit -gline-tables-only for --enable-asanBen Noordhuis
`-gline-tables-only` is a clang-only flag. Drop it, it's not needed for address sanitizer-enabled builds and it makes it impossible to build with gcc. Fixes: https://github.com/nodejs/node/issues/3656 PR-URL: https://github.com/nodejs/node/pull/3680 Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-09-15build: Updates to enable AIX supportMichael Dawson
These are the core changes that allow AIX to compile. There are still some test failures as there are some patches needed for libuv and npm that we'll need to contribute through those communities but this set allows node to be built on AIX and pass most of the core tests The change in js2c is because AIX does not support $ in identifier names. See the discussion/agreement in https://github.com/nodejs/node/issues/2272 PR-URL: https://github.com/nodejs/node/pull/2364 Reviewed-By: Ben Noordhuis <ben@strongloop.com> Reviewed-By: Rod Vagg <r@va.gg>
2015-09-08build: fix v8_enable_handle_zapping overrideKarl Skomski
It was previously ignored by features.gypi and therefore enabled by default for release builds. See https://code.google.com/p/chromium/issues/detail?id=318206 PR-URL: https://github.com/nodejs/node/pull/2731 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-09-06build: add --enable-asan with builtin leakcheckKarl Skomski
PR-URL: https://github.com/nodejs/node/pull/2376 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-08-04build: first set of updates to enable PPC supportMichael Dawson
These are the core changes that allow pLinux BE/LE compile. They don't include all of the changes needed for AIX which will follow once we have pLinux up and running in the builds PR-URL: https://github.com/nodejs/io.js/pull/2124 Reviewed-By: Ben Noordhuis <ben@strongloop.com> Reviewed-By: Johan Bergstrom <bugs@bergstroem.nu>
2015-07-29build: produce symbol map files on windowsAli Ijaz Sheikh
This produces map files as part of the build on windows. The existence of these files enable profiling and tick-processing using the --prof command line. See: https://github.com/nodejs/io.js/pull/2090#issuecomment-124746673 Map files are documented here: https://msdn.microsoft.com/en-us/library/k7xkk3e2.aspx PR-URL: https://github.com/nodejs/io.js/pull/2243 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-06-11crypto: support FIPS mode of OpenSSLFedor Indutny
Support building and running with FIPS-compliant OpenSSL. The process is following: 1. Download and verify `openssl-fips-x.x.x.tar.gz` from https://www.openssl.org/source/ 2. Extract source to `openssl-fips` folder 3. ``cd openssl-fips && ./config fipscanisterbuild --prefix=`pwd`/out`` (NOTE: On OS X, you may want to run ``./Configure darwin64-x86_64-cc --prefix=`pwd`/out`` if you are going to build x64-mode io.js) 4. `make -j && make install` 5. Get into io.js checkout folder 6. `./configure --openssl-fips=/path/to/openssl-fips/out` 7. Build io.js with `make -j` 8. Verify with `node -p "process.versions.openssl"` (`1.0.2a-fips`) Fix: https://github.com/joyent/node/issues/25463 PR-URL: https://github.com/nodejs/io.js/pull/1890 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-05-04build: don't compile debug build with -OgBen Noordhuis
It's not supported by clang and commit e67542a ("build: disable -Og when building with clang") is not sufficient because the configure script no longer writes the 'clang' variable to common.gypi. I could fix the configure script but I don't care enough actually do so. A fixed configure script won't help anyway when the compiler is overridden through the CXX environment variable at compile time. PR-URL: https://github.com/iojs/io.js/pull/1611 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-05-04build: disable -Og when building with clangBen Noordhuis
clang does not yet support -Og, fall back to -O0. See: https://llvm.org/bugs/show_bug.cgi?id=20765 Fixes: https://github.com/iojs/io.js/issues/1608 PR-URL: https://github.com/iojs/io.js/pull/1609 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-05-01build: turn on debug-safe optimizations with -OgBen Noordhuis
The resulting binary is still easy to inspect in gdb but is not as dog slow. The 'parallel' test suite, although it takes several minutes to complete, now finishes without any tests timing out. PR-URL: https://github.com/iojs/io.js/pull/1569 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>