Skip to contentSkip to conversation

package/nodejs: use shared c-ares

PATCH New Martin Bark 2 participants 5 messages Jul 18, 2017 – Jul 19, 2017

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/3 package/nodejs: use shared c-ares

nodejs requires c-ares and by default will use an internal copy bundled with the release. Change to using a shared c-ares library.

---
Changes v1 -> v2:
- always use shared c-ares (Thomas Petazzoni)

---
 package/nodejs/Config.in | 1 +
 package/nodejs/nodejs.mk | 2 ++
 2 files changed, 3 insertions(+)
package/nodejs/Config.in +1 -0
index 3022f9c..37d63d0 100644
@@ -25,6 +25,7 @@ config BR2_PACKAGE_NODEJS
 	# linking, but that's too much of a corner case to support it.
 	depends on !BR2_STATIC_LIBS
 	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_C_ARES
 	help
 	  Event-driven I/O server-side JavaScript environment based on V8.
 
package/nodejs/nodejs.mk +2 -0
index 43c5ff3..68cc904 100644
@@ -8,6 +8,7 @@ NODEJS_VERSION = 8.1.4
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
 NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
 NODEJS_DEPENDENCIES = host-python host-nodejs zlib \
+	c-ares \
 	$(call qstrip,$(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS))
 HOST_NODEJS_DEPENDENCIES = host-python host-zlib
 NODEJS_LICENSE = MIT (core code); MIT, Apache and BSD family licenses (Bundled components)
@@ -16,6 +17,7 @@ NODEJS_LICENSE_FILES = LICENSE
 NODEJS_CONF_OPTS = \
 	--without-snapshot \
 	--shared-zlib \
+	--shared-cares \
 	--without-dtrace \
 	--without-etw \
 	--dest-os=linux
Signature · 1 line
2.7.4
#1 lore raw

PATCH v2 2/3 package/nodejs: use shared libhttpparser

nodejs requires libhttpparser and by default will use an internal copy bundled with the release. Change to using a shared libhttpparser library.

---
Changes v1 -> v2:
- always use shared libhttpparser (Thomas Petazzoni)

---
 package/nodejs/Config.in | 1 +
 package/nodejs/nodejs.mk | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
package/nodejs/Config.in +1 -0
index 37d63d0..f02b9a7 100644
@@ -26,6 +26,7 @@ config BR2_PACKAGE_NODEJS
 	depends on !BR2_STATIC_LIBS
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_C_ARES
+	select BR2_PACKAGE_LIBHTTPPARSER
 	help
 	  Event-driven I/O server-side JavaScript environment based on V8.
 
package/nodejs/nodejs.mk +2 -1
index 68cc904..c97b793 100644
@@ -8,7 +8,7 @@ NODEJS_VERSION = 8.1.4
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
 NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
 NODEJS_DEPENDENCIES = host-python host-nodejs zlib \
-	c-ares \
+	c-ares libhttpparser \
 	$(call qstrip,$(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS))
 HOST_NODEJS_DEPENDENCIES = host-python host-zlib
 NODEJS_LICENSE = MIT (core code); MIT, Apache and BSD family licenses (Bundled components)
@@ -18,6 +18,7 @@ NODEJS_CONF_OPTS = \
 	--without-snapshot \
 	--shared-zlib \
 	--shared-cares \
+	--shared-http-parser \
 	--without-dtrace \
 	--without-etw \
 	--dest-os=linux
Signature · 1 line
2.7.4
#2 lore raw

PATCH v2 3/3 package/nodejs: use shared libuv

In reply to Martin Bark

nodejs requires libuv and by default will use an internal copy bundled with the release. Change to using a shared libuv library.

---
Changes v1 -> v2:
- always use shared libuv (Thomas Petazzoni)

---
 package/nodejs/Config.in | 9 ++++++---
 package/nodejs/nodejs.mk | 3 ++-
 2 files changed, 8 insertions(+), 4 deletions(-)
package/nodejs/Config.in +6 -3
index f02b9a7..d3cb006 100644
@@ -5,15 +5,17 @@ config BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
 	default y if BR2_mipsel && !BR2_MIPS_SOFT_FLOAT
 	default y if BR2_aarch64 || BR2_i386 || BR2_x86_64
 
-comment "nodejs needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.8, wchar"
+comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 4.8, wchar"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
-	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
 		!BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
 
 config BR2_PACKAGE_NODEJS
 	bool "nodejs"
-	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
 	depends on BR2_HOST_GCC_AT_LEAST_4_8
@@ -27,6 +29,7 @@ config BR2_PACKAGE_NODEJS
 	select BR2_PACKAGE_ZLIB
 	select BR2_PACKAGE_C_ARES
 	select BR2_PACKAGE_LIBHTTPPARSER
+	select BR2_PACKAGE_LIBUV
 	help
 	  Event-driven I/O server-side JavaScript environment based on V8.
 
package/nodejs/nodejs.mk +2 -1
index c97b793..4012b4d 100644
@@ -8,7 +8,7 @@ NODEJS_VERSION = 8.1.4
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
 NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION)
 NODEJS_DEPENDENCIES = host-python host-nodejs zlib \
-	c-ares libhttpparser \
+	c-ares libhttpparser libuv \
 	$(call qstrip,$(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS))
 HOST_NODEJS_DEPENDENCIES = host-python host-zlib
 NODEJS_LICENSE = MIT (core code); MIT, Apache and BSD family licenses (Bundled components)
@@ -19,6 +19,7 @@ NODEJS_CONF_OPTS = \
 	--shared-zlib \
 	--shared-cares \
 	--shared-http-parser \
+	--shared-libuv \
 	--without-dtrace \
 	--without-etw \
 	--dest-os=linux
Signature · 1 line
2.7.4
#3 lore raw

PATCH v2 3/3 package/nodejs: use shared libuv

Hello,

Quoted 12 lines · Martin Bark
package/nodejs/Config.in +1 -1
index f02b9a7..d3cb006 100644
@@ -5,15 +5,17 @@ config BR2_PACKAGE_NODEJS_ARCH_SUPPORTS
 	default y if BR2_mipsel && !BR2_MIPS_SOFT_FLOAT
 	default y if BR2_aarch64 || BR2_i386 || BR2_x86_64
 
-comment "nodejs needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.8, wchar"
+comment "nodejs needs a toolchain w/ C++, dynamic library, NPTL, gcc >= 4.8, wchar"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_NODEJS_ARCH_SUPPORTS

package/nodejs/Config.in config BR2_PACKAGE_NODEJS_ARCH_SUPPORTS · line 18

Quoted 10 lines
package/nodejs/Config.in +4 -2
-	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS || \
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
 		!BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
 
 config BR2_PACKAGE_NODEJS
 	bool "nodejs"
-	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv

BR2_TOOLCHAIN_HAS_SYNC_4 really is an architecture dependency (we don't show a Config.in comment for it), so I've moved it under BR2_PACKAGE_NODEJS_ARCH_SUPPORTS, so it doesn't have to be duplicated.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH v2 1/3 package/nodejs: use shared c-ares

In reply to Martin Bark

Hello,

package/nodejs/Config.in config BR2_PACKAGE_NODEJS · line 28

Quoted 9 lines · Martin Bark
package/nodejs/Config.in +1 -0
index 3022f9c..37d63d0 100644
@@ -25,6 +25,7 @@ config BR2_PACKAGE_NODEJS
 	# linking, but that's too much of a corner case to support it.
 	depends on !BR2_STATIC_LIBS
 	select BR2_PACKAGE_ZLIB
+	select BR2_PACKAGE_C_ARES

Alphabetic ordering here and in <pkg>_DEPENDENCIES would have been better. I've fixed this and applied all three patches. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com