Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 720204 - net-libs/nodejs-12.16.1 USE=icu with dev-libs/icu-67.1 : js-number-format.cc:1287:15: error: ‘class icu::number::FormattedNumber’ has no member named ‘getAllFieldPositions’
Summary: net-libs/nodejs-12.16.1 USE=icu with dev-libs/icu-67.1 : js-number-format.cc:...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 4 votes (vote)
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard: fixed in 14.1.0 (at least)
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-30 23:26 UTC by Stefan Strogin
Modified: 2020-11-09 13:08 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,520.42 KB, text/plain)
2020-05-01 00:04 UTC, Stefan Strogin
Details
patch for compiling against icu-67.1 (2136489.patch,5.78 KB, patch)
2020-05-15 04:03 UTC, Trevor Stiles
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Strogin gentoo-dev 2020-04-30 23:26:59 UTC
Upgrade to dev-libs/icu-67.1 causes rebuild of net-libs/nodejs.

$ emerge -pqv nodejs
[ebuild   R   ] net-libs/nodejs-12.16.3  USE="icu inspector npm snapshot ssl -debug -doc -system-ssl -systemtap -test" CPU_FLAGS_X86="sse2"

x86_64-pc-linux-gnu-g++ -o /var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/objects/js-number-format.o ../deps/v8/src/objects/js-number-format.cc '-DV8_GYP_BUILD' '-DV8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=64' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DV8_TARGET_ARCH_X64' '-DV8_EMBEDDER_STRING="-node.35"' '-DENABLE_DISASSEMBLER' '-DV8_PROMISE_INTERNAL_FIELD_COUNT=1' '-DENABLE_MINOR_MC' '-DV8_INTL_SUPPORT' '-DV8_USE_SNAPSHOT' '-DV8_CONCURRENT_MARKING' '-DV8_ENABLE_LAZY_SOURCE_POSITIONS' '-DV8_EMBEDDED_BUILTINS' '-DV8_USE_SIPHASH' '-DDISABLE_UNTRUSTED_CODE_MITIGATIONS' '-DV8_WIN64_UNWINDING_INFO' '-DV8_ENABLE_REGEXP_INTERPRETER_THREADED_DISPATCH' '-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC' -I../deps/v8 -I../deps/v8/include -I/var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out/Release/obj/gen/inspector-generated-output-root -I../deps/v8/third_party/inspector_protocol -I/var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out/Release/obj/gen/torque-output-root -I/var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out/Release/obj/gen/generate-bytecode-output-root  -pthread -Wno-unused-parameter -m64 -Wno-return-type -fno-strict-aliasing -m64 -fno-omit-frame-pointer -fdata-sections -ffunction-sections -O3 -fno-rtti -fno-exceptions -std=gnu++1y   -march=skylake -O3 -pipe -c
../deps/v8/src/objects/js-number-format.cc: In function ‘v8::Maybe<icu::UnicodeString> v8::internal::{anonymous}::IcuFormatNumber(v8::internal::Isolate*, const icu::number::LocalizedNumberFormatter&, v8::internal::Handle<v8::internal::Object>, icu::FieldPositionIterator*)’:
../deps/v8/src/objects/js-number-format.cc:1287:15: error: ‘class icu::number::FormattedNumber’ has no member named ‘getAllFieldPositions’; did you mean ‘getAllFieldPositionsImpl’?
 1287 |     formatted.getAllFieldPositions(*fp_iter, status);
      |               ^~~~~~~~~~~~~~~~~~~~
      |               getAllFieldPositionsImpl
make: *** [tools/v8_gypfiles/v8_base_without_compiler.target.mk:622: /var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out/Release/obj.target/v8_base_without_compiler/deps/v8/src/objects/js-number-format.o] Error 1
rm 5f300655a1081bc1d388dac598653c5cb4a2c75a.intermediate ce55da1f6c5b6cdcda0c109bdee923ff626a80a0.intermediate
make: Leaving directory '/var/tmp/portage/net-libs/nodejs-12.16.3/work/node-v12.16.3/out'
 * ERROR: net-libs/nodejs-12.16.3::gentoo failed (compile phase):
 *   emake failed
Comment 1 Stefan Strogin gentoo-dev 2020-05-01 00:04:30 UTC
Created attachment 635388 [details]
build.log
Comment 2 Armitage 2020-05-02 08:17:53 UTC
I can reproduce the same error.
Comment 3 Armitage 2020-05-03 13:37:25 UTC
The problem is solved in net-libs/nodejs-14.1.0. I didn't try to compile other versions.
Comment 4 Willard Dawson 2020-05-08 21:44:07 UTC
If this is solved in a later version, when can we expect one of those to be promoted to stable?
Comment 5 Andreas Sturmlechner gentoo-dev 2020-05-13 15:04:25 UTC
dev-libs/icu-67.1 itself is not stable, not even 66.1 at this point, so there is no immediate problem except for people mixing arch and ~arch.

Maybe nodejs maintainers want to time stabilisation together with icu-66.1/67.1 though, currently tracked in bug 716822.
Comment 6 Trevor Stiles 2020-05-15 04:03:02 UTC
Created attachment 639108 [details, diff]
patch for compiling against icu-67.1

I'm running testing chromium on stable amd64. I started with https://chromium-review.googlesource.com/c/v8/v8/+/2136489 and then cleaned it up with the patch at https://gitweb.gentoo.org/repo/gentoo.git/diff/www-client/chromium/files/chromium-81-icu67.patch?id=d2da708be8232c1fde4417584c056e519d015087
Was able to get it to build properly after that. Figured it might be useful if anyone else runs into this.
Comment 7 Rodrigo Saboya 2020-05-21 18:55:03 UTC
Well, now this is a real issue since icu-67.1 is stable and I need to keep my nodejs at version 12. Right now I'm masking >=dev-libs/nodejs-13 and >=dev-libs/icu-66, but it would be nice if =dev-libs/nodejs-12* could account for <dev-libs/icu-67 (or 66, not sure where the change was introduced).
Comment 9 Jan Henke 2020-05-22 09:24:08 UTC
I also have to switch back to nodejs 12.x. Having compiled 14.2.0 before during the ICU update, I am now stuck with a NodeJS version I cannot use (team policy).

I see there is a patch attached to this bug, could you look into getting that one into the tree?

I also searched upstream's GitHub repository, but did not find an upstream bug about this issue.
Comment 10 Jan Henke 2020-05-22 09:28:39 UTC
I did find an upstream bug regarding this issue, even though it is marked resolved upstream, but the fix is yet to be released: https://github.com/nodejs/node/issues/32660

So either we have to wait for the next 12.x release (which, according to the upstream bug, would contain the fix) or the fix needs to be backported to the current 12.x release in Gentoo.
Comment 11 redneb 2020-05-22 15:41:53 UTC
I have tested the attached patch and I could get node 12.16.3 to compile successfully against icu-67.1.
Comment 12 Raphaël Barrois 2020-08-07 11:23:28 UTC
The upstream patch (for nodejs) has been merged as https://github.com/nodejs/node/commit/b37ec37210237ab65040948791916912c4ab055d; it is included in nodejs-12.17.0.

I can confirm that this commit applies cleanly to nodejs 12.16.1 (current stable version in the 12.x series), and compiles properly.
Comment 13 Marek Szuba archtester gentoo-dev 2020-11-09 13:08:28 UTC
nodejs-12 has been removed from the tree.