From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Mon, 27 Jul 2020 12:47:58 +0200 Subject: [Buildroot] [PATCH v6 1/1] package/nodejs: use system-icu for host-nodejs In-Reply-To: References: <20200727094930.703188-1-james.hilliard1@gmail.com> <20200727095354.GR19818@scaer> Message-ID: <20200727104758.GS19818@scaer> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net James, All, On 2020-07-27 04:28 -0600, James Hilliard spake thusly: > On Mon, Jul 27, 2020 at 3:54 AM Yann E. MORIN wrote: > > On 2020-07-27 03:49 -0600, James Hilliard spake thusly: > > > The nodejs configure.py file orders zlib headers before the bundled ICU > > > headers. The zlib headers happen to be located in the system include > > > directory, next to some system ICU headers (not bundled). If these are > > > built before nodejs is, nodejs will get confused and try to use the > > > system ICU headers instead of the bundled ones. > > > > > > Fix this by always using host-icu. [--SNIP--] > > > +HOST_NODEJS_CONF_OPTS = \ > > Why did you need to introduce HOST_NODEJS_CONF_OPTS? Can't we just > > change --with-intl where it already is? > I thought it was cleaner this way but can change it back. No need to respin just for that. > > > +HOST_NODEJS_CXXFLAGS = -DU_DISABLE_RENAMING=1 > > You forgot to propagate HOST_CXXFLAGS. > Are you sure that's needed with the way the nodejs build system works? Well, CXXFLAGS are set in $(HOST_CONFIGURE_OPTS): $ make printvars VARS=HOST_CONFIGURE_OPTS RAW_VARS=YES [...] CXXFLAGS="$(HOST_CXXFLAGS)" [...] So, were they used previously? If not, then the commit log should say so. However, I'm afraid they were. They at least contain the CFLAGS, which contain the optimisation level (-O2), but mnost importantly, contain the CPPFGLAGS, so contains the correct include path to $(HOST_DIR)/include And it seems the default value for CXXFLAGS.target does use CXXFLAGS: tools/gyp/pylib/gyp/generator/make.py:CXXFLAGS.target ?= $(CPPFLAGS) $(CXXFLAGS) So maybe we need something like: HOST_NODEJS_CXXFLAGS = $(HOST_CXXFLAGS) -DU_DISABLE_RENAMING=1 and in the configure and build comands: ... $(HOST_CONFIGURE_OPTS) \ CXXFLAGS="$(HOST_NODEJS_CXXFLAGS)" \ ... Regards, Yann E. MORIN. > > > ifeq ($(BR2_PACKAGE_OPENSSL),y) > > > NODEJS_DEPENDENCIES += openssl > > > NODEJS_CONF_OPTS += --shared-openssl > > > @@ -57,16 +71,7 @@ define HOST_NODEJS_CONFIGURE_CMDS > > > PATH=$(@D)/bin:$(BR_PATH) \ > > > PYTHON=$(HOST_DIR)/bin/python2 \ > > > $(HOST_DIR)/bin/python2 ./configure \ > > > - --prefix=$(HOST_DIR) \ > > > - --without-snapshot \ > > > - --without-dtrace \ > > > - --without-etw \ > > > - --shared-openssl \ > > > - --shared-openssl-includes=$(HOST_DIR)/include/openssl \ > > > - --shared-openssl-libpath=$(HOST_DIR)/lib \ > > > - --shared-zlib \ > > > - --no-cross-compiling \ > > > - --with-intl=small-icu \ > > > + $(HOST_NODEJS_CONF_OPTS) \ > > > ) > > > endef > > > > > > @@ -81,6 +86,7 @@ define HOST_NODEJS_BUILD_CMDS > > > $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python2 \ > > > $(MAKE) -C $(@D) \ > > > $(HOST_CONFIGURE_OPTS) \ > > > + CXXFLAGS.target="$(HOST_NODEJS_CXXFLAGS)" \ > > > LDFLAGS.host="$(HOST_LDFLAGS)" \ > > > > Why do we use CXXFLAGS.target but LDFLAGS.host ? > Not sure. > > > > Regards, > > Yann E. MORIN. > > > > > NO_LOAD=cctest.target.mk \ > > > PATH=$(@D)/bin:$(BR_PATH) > > > @@ -90,6 +96,7 @@ define HOST_NODEJS_INSTALL_CMDS > > > $(HOST_MAKE_ENV) PYTHON=$(HOST_DIR)/bin/python2 \ > > > $(MAKE) -C $(@D) install \ > > > $(HOST_CONFIGURE_OPTS) \ > > > + CXXFLAGS.target="$(HOST_NODEJS_CXXFLAGS)" \ > > > LDFLAGS.host="$(HOST_LDFLAGS)" \ > > > NO_LOAD=cctest.target.mk \ > > > PATH=$(@D)/bin:$(BR_PATH) > > > -- > > > 2.25.1 > > > > > > _______________________________________________ > > > buildroot mailing list > > > buildroot at busybox.net > > > http://lists.busybox.net/mailman/listinfo/buildroot > > > > -- > > .-----------------.--------------------.------------------.--------------------. > > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > > '------------------------------^-------^------------------^--------------------' > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'