From 4ce711fc890836941c25d79f0b316711a6de11cb Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 28 May 2016 16:06:43 +0200 Subject: [PATCH] node: downgrade to v0.12.14 Allow to build Gluon with GCC 4.7 (e.g. on Debian Wheezy) as host compiler again. --- .../0004-node-update-to-v0.12.14.patch | 36 ++++++ .../openwrt/0004-node-update-to-v4.4.4.patch | 110 ------------------ ...ur-leading-to-broken-code-with-GCC-6.patch | 20 ++-- 3 files changed, 46 insertions(+), 120 deletions(-) create mode 100644 patches/packages/openwrt/0004-node-update-to-v0.12.14.patch delete mode 100644 patches/packages/openwrt/0004-node-update-to-v4.4.4.patch diff --git a/patches/packages/openwrt/0004-node-update-to-v0.12.14.patch b/patches/packages/openwrt/0004-node-update-to-v0.12.14.patch new file mode 100644 index 00000000..9b03cee4 --- /dev/null +++ b/patches/packages/openwrt/0004-node-update-to-v0.12.14.patch @@ -0,0 +1,36 @@ +From: Matthias Schiffer +Date: Mon, 9 May 2016 15:57:18 +0200 +Subject: node: update to v0.12.14 + +While we're at it, also enable parallel builds. + +Signed-off-by: Matthias Schiffer + +diff --git a/lang/node/Makefile b/lang/node/Makefile +index 243c8a5..e6fe843 100644 +--- a/lang/node/Makefile ++++ b/lang/node/Makefile +@@ -8,17 +8,21 @@ + include $(TOPDIR)/rules.mk + + PKG_NAME:=node +-PKG_VERSION:=v0.12.7 ++PKG_VERSION:=v0.12.14 + PKG_RELEASE:=1 + +-PKG_SOURCE:=node-$(PKG_VERSION).tar.gz ++PKG_SOURCE:=node-$(PKG_VERSION).tar.xz + PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION} ++PKG_MD5SUM:=27f1a2cf00af32cbfe9401ca4b1a805f + + HOST_BUILD_DEPENDS:=python/host + PKG_BUILD_DEPENDS:=python/host + PKG_INSTALL:=1 + PKG_USE_MIPS16:=0 + ++HOST_BUILD_PARALLEL:=1 ++PKG_BUILD_PARALLEL:=1 ++ + PKG_MAINTAINER:=John Crispin + PKG_LICENSE:= + diff --git a/patches/packages/openwrt/0004-node-update-to-v4.4.4.patch b/patches/packages/openwrt/0004-node-update-to-v4.4.4.patch deleted file mode 100644 index 8c431944..00000000 --- a/patches/packages/openwrt/0004-node-update-to-v4.4.4.patch +++ /dev/null @@ -1,110 +0,0 @@ -From: Matthias Schiffer -Date: Mon, 9 May 2016 15:57:18 +0200 -Subject: node: update to v4.4.4 - -While we're at it, also enable parallel builds. - -Signed-off-by: Matthias Schiffer - -diff --git a/lang/node/Makefile b/lang/node/Makefile -index 243c8a5..71cf55b 100644 ---- a/lang/node/Makefile -+++ b/lang/node/Makefile -@@ -8,17 +8,21 @@ - include $(TOPDIR)/rules.mk - - PKG_NAME:=node --PKG_VERSION:=v0.12.7 -+PKG_VERSION:=v4.4.4 - PKG_RELEASE:=1 - --PKG_SOURCE:=node-$(PKG_VERSION).tar.gz -+PKG_SOURCE:=node-$(PKG_VERSION).tar.xz - PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION} -+PKG_MD5SUM:=1ad7915688df85f62a57f43860dc54c6 - - HOST_BUILD_DEPENDS:=python/host - PKG_BUILD_DEPENDS:=python/host - PKG_INSTALL:=1 - PKG_USE_MIPS16:=0 - -+HOST_BUILD_PARALLEL:=1 -+PKG_BUILD_PARALLEL:=1 -+ - PKG_MAINTAINER:=John Crispin - PKG_LICENSE:= - -@@ -31,7 +35,7 @@ define Package/node - SUBMENU:=Node.js - TITLE:=Node.js is a platform built on Chrome's JavaScript runtime - URL:=http://nodejs.org/ -- DEPENDS:=+libpthread +librt +libstdcpp +libopenssl +libuv -+ DEPENDS:=+libpthread +librt +libstdcpp +libopenssl +libuv +zlib - endef - - define Package/node/description -diff --git a/lang/node/patches/001-hardfloat.patch b/lang/node/patches/001-hardfloat.patch -new file mode 100644 -index 0000000..1bb2493 ---- /dev/null -+++ b/lang/node/patches/001-hardfloat.patch -@@ -0,0 +1,12 @@ -+diff --git a/deps/v8/src/base/cpu.cc b/deps/v8/src/base/cpu.cc -+index 4f58720..1f3071e 100644 -+--- a/deps/v8/src/base/cpu.cc -++++ b/deps/v8/src/base/cpu.cc -+@@ -143,6 +143,7 @@ int __detect_fp64_mode(void) { -+ ".set push\n\t" -+ ".set noreorder\n\t" -+ ".set oddspreg\n\t" -++ ".set hardfloat\n\t" -+ "lui $t0, 0x3FF0\n\t" -+ "ldc1 $f0, %0\n\t" -+ "mtc1 $t0, $f1\n\t" -diff --git a/lang/node/patches/001-mips-no-fpu.patch b/lang/node/patches/001-mips-no-fpu.patch -deleted file mode 100644 -index 5bf8142..0000000 ---- a/lang/node/patches/001-mips-no-fpu.patch -+++ /dev/null -@@ -1,15 +0,0 @@ ----- a/deps/v8/build/toolchain.gypi --+++ b/deps/v8/build/toolchain.gypi --@@ -50,10 +50,10 @@ -- 'arm_test_noprobe%': 'off', -- -- # Similar to vfp but on MIPS. --- 'v8_can_use_fpu_instructions%': 'true', --+ 'v8_can_use_fpu_instructions%': 'false', -- -- # Similar to the ARM hard float ABI but on MIPS. --- 'v8_use_mips_abi_hardfloat%': 'true', --+ 'v8_use_mips_abi_hardfloat%': 'false', -- -- # Default arch variant for MIPS. -- 'mips_arch_variant%': 'r2', -diff --git a/lang/node/patches/002-addr_info.patch b/lang/node/patches/002-addr_info.patch -index 78225db..0aa02da 100644 ---- a/lang/node/patches/002-addr_info.patch -+++ b/lang/node/patches/002-addr_info.patch -@@ -1,6 +1,6 @@ - --- a/deps/uv/src/unix/getaddrinfo.c - +++ b/deps/uv/src/unix/getaddrinfo.c --@@ -99,6 +99,7 @@ -+@@ -99,6 +99,7 @@ static void uv__getaddrinfo_work(struct - int err; - - req = container_of(w, uv_getaddrinfo_t, work_req); -diff --git a/lang/node/patches/003-path.patch b/lang/node/patches/003-path.patch -index 723fe9d..01a71c6 100644 ---- a/lang/node/patches/003-path.patch -+++ b/lang/node/patches/003-path.patch -@@ -1,7 +1,7 @@ - --- a/lib/module.js - +++ b/lib/module.js --@@ -512,7 +512,8 @@ -- var homeDir = process.env.HOME; -+@@ -453,7 +453,8 @@ Module._initPaths = function() { -+ homeDir = process.env.HOME; - } - - - var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')]; diff --git a/patches/packages/openwrt/0005-node-fix-undefined-behaviour-leading-to-broken-code-with-GCC-6.patch b/patches/packages/openwrt/0005-node-fix-undefined-behaviour-leading-to-broken-code-with-GCC-6.patch index 12d6bcd2..ae5162e2 100644 --- a/patches/packages/openwrt/0005-node-fix-undefined-behaviour-leading-to-broken-code-with-GCC-6.patch +++ b/patches/packages/openwrt/0005-node-fix-undefined-behaviour-leading-to-broken-code-with-GCC-6.patch @@ -10,15 +10,15 @@ Signed-off-by: Matthias Schiffer diff --git a/lang/node/patches/004-gcc6-undefined-behaviour.patch b/lang/node/patches/004-gcc6-undefined-behaviour.patch new file mode 100644 -index 0000000..11b0132 +index 0000000..dbbbcf0 --- /dev/null +++ b/lang/node/patches/004-gcc6-undefined-behaviour.patch @@ -0,0 +1,64 @@ +diff --git a/deps/v8/src/heap/incremental-marking.cc b/deps/v8/src/heap/incremental-marking.cc -+index 58eb0aa..b2b796f 100644 ++index c922e83..2ead8be 100644 +--- a/deps/v8/src/heap/incremental-marking.cc ++++ b/deps/v8/src/heap/incremental-marking.cc -+@@ -364,7 +364,7 @@ void IncrementalMarking::DeactivateIncrementalWriteBarrier() { ++@@ -379,7 +379,7 @@ void IncrementalMarking::DeactivateIncrementalWriteBarrier() { + DeactivateIncrementalWriteBarrierForSpace(heap_->new_space()); + + LargePage* lop = heap_->lo_space()->first_page(); @@ -27,7 +27,7 @@ index 0000000..11b0132 + SetOldSpacePageFlags(lop, false, false); + lop = lop->next_page(); + } -+@@ -396,7 +396,7 @@ void IncrementalMarking::ActivateIncrementalWriteBarrier() { ++@@ -414,7 +414,7 @@ void IncrementalMarking::ActivateIncrementalWriteBarrier() { + ActivateIncrementalWriteBarrier(heap_->new_space()); + + LargePage* lop = heap_->lo_space()->first_page(); @@ -37,10 +37,10 @@ index 0000000..11b0132 + lop = lop->next_page(); + } +diff --git a/deps/v8/src/heap/spaces-inl.h b/deps/v8/src/heap/spaces-inl.h -+index c2c4d12..d63ee63 100644 ++index 56c2bad..1a45096 100644 +--- a/deps/v8/src/heap/spaces-inl.h ++++ b/deps/v8/src/heap/spaces-inl.h -+@@ -155,7 +155,7 @@ Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable, ++@@ -148,7 +148,7 @@ Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable, + + bool PagedSpace::Contains(Address addr) { + Page* p = Page::FromAddress(addr); @@ -50,10 +50,10 @@ index 0000000..11b0132 + } + +diff --git a/deps/v8/src/heap/spaces.cc b/deps/v8/src/heap/spaces.cc -+index 0806b25..c0e109b 100644 ++index e197f5a..2fe10eb 100644 +--- a/deps/v8/src/heap/spaces.cc ++++ b/deps/v8/src/heap/spaces.cc -+@@ -2953,7 +2953,7 @@ LargePage* LargeObjectSpace::FindPage(Address a) { ++@@ -2918,7 +2918,7 @@ LargePage* LargeObjectSpace::FindPage(Address a) { + if (e != NULL) { + DCHECK(e->value != NULL); + LargePage* page = reinterpret_cast(e->value); @@ -63,10 +63,10 @@ index 0000000..11b0132 + return page; + } +diff --git a/deps/v8/src/heap/spaces.h b/deps/v8/src/heap/spaces.h -+index 3461de3..e35c057 100644 ++index 312d75f..1054672 100644 +--- a/deps/v8/src/heap/spaces.h ++++ b/deps/v8/src/heap/spaces.h -+@@ -278,9 +278,9 @@ class MemoryChunk { ++@@ -283,9 +283,9 @@ class MemoryChunk { + // Only works for addresses in pointer spaces, not data or code spaces. + static inline MemoryChunk* FromAnyPointerAddress(Heap* heap, Address addr); +