Skip to content

Small ICU fails to build #45174

@aduh95

Description

@aduh95

Version

main

Platform

macOS

Subsystem

build

What steps will reproduce the bug?

./configure --node-builtin-modules-path $(pwd) --with-intl=small-icu --without-npm --without-corepack
CC="ccache cc" CXX="ccache c++" make jstest -j12

How often does it reproduce? Is there a required condition?

No response

What is the expected behavior?

No response

What do you see instead?

/Library/Developer/CommandLineTools/usr/bin/make -C out BUILDTYPE=Release V=0
  ccache c++ -o /Users/duhamean/Documents/node/out/Release/obj.target/genrb/deps/icu-small/source/tools/genrb/parse.o ../deps/icu-small/source/tools/genrb/parse.cpp '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-D_DARWIN_USE_64_BIT_INODE=1' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DUCONFIG_NO_SERVICE=1' '-DU_ENABLE_DYLOAD=0' '-DU_STATIC_IMPLEMENTATION=1' '-DU_HAVE_STD_STRING=1' '-DUCONFIG_NO_BREAK_ITERATION=0' -I../deps/icu-small/source/common -I../deps/icu-small/source/i18n -I../deps/icu-small/source/tools/toolutil  -O3 -gdwarf-2 -mmacosx-version-min=10.15 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=gnu++17 -stdlib=libc++ -fno-rtti -fno-exceptions -fno-strict-aliasing -MMD -MF /Users/duhamean/Documents/node/out/Release/.deps//Users/duhamean/Documents/node/out/Release/obj.target/genrb/deps/icu-small/source/tools/genrb/parse.o.d.raw   -c
  ccache c++ -Wl,-search_paths_first -mmacosx-version-min=10.15 -arch x86_64 -L/Users/duhamean/Documents/node/out/Release -stdlib=libc++  -o "/Users/duhamean/Documents/node/out/Release/iculslocs" /Users/duhamean/Documents/node/out/Release/obj.target/iculslocs/tools/icu/iculslocs.o /Users/duhamean/Documents/node/out/Release/obj.target/iculslocs/tools/icu/no-op.o /Users/duhamean/Documents/node/out/Release/libicutools.a 
  ccache c++ -Wl,-search_paths_first -mmacosx-version-min=10.15 -arch x86_64 -L/Users/duhamean/Documents/node/out/Release -stdlib=libc++  -o "/Users/duhamean/Documents/node/out/Release/torque" /Users/duhamean/Documents/node/out/Release/obj.target/torque/deps/v8/src/torque/torque.o /Users/duhamean/Documents/node/out/Release/libtorque_base.a /Users/duhamean/Documents/node/out/Release/libv8_libbase.a 
  touch 3e5ac1b7919114e6c645550b41a071302d3a2a7b.intermediate
  LD_LIBRARY_PATH=/Users/duhamean/Documents/node/out/Release/lib.host:/Users/duhamean/Documents/node/out/Release/lib.target:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; cd ../tools/v8_gypfiles; mkdir -p /Users/duhamean/Documents/node/out/Release/obj/gen/inspector-generated-output-root/src/inspector/protocol /Users/duhamean/Documents/node/out/Release/obj/gen/inspector-generated-output-root/include/inspector; /usr/local/opt/[email protected]/bin/python3.10 ../../deps/v8/third_party/inspector_protocol/code_generator.py --jinja_dir ../../deps/v8/third_party --output_base "/Users/duhamean/Documents/node/out/Release/obj/gen/inspector-generated-output-root/src/inspector" --config ../../deps/v8/src/inspector/inspector_protocol_config.json --config_value "protocol.path=../../deps/v8/include/js_protocol.pdl" --inspector_protocol_dir ../../deps/v8/third_party/inspector_protocol
In file included from ../deps/icu-small/source/tools/genrb/parse.cpp:63:
In file included from ../deps/icu-small/source/i18n/collationtailoring.h:27:
../deps/icu-small/source/common/unifiedcache.h:111:24: error: use of typeid requires -frtti
       const char *s = typeid(T).name();
                       ^
../deps/icu-small/source/common/unifiedcache.h:119:24: error: use of typeid requires -frtti
       const char *s = typeid(T).name();
                       ^
../deps/icu-small/source/common/unifiedcache.h:130:33: error: use of typeid requires -frtti
       return this == &other || typeid(*this) == typeid(other);
                                ^
../deps/icu-small/source/common/unifiedcache.h:130:50: error: use of typeid requires -frtti
       return this == &other || typeid(*this) == typeid(other);
                                                 ^
../deps/icu-small/source/tools/genrb/parse.cpp:811:23: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
            buffer += sprintf(buffer, "\\u%04X", (int)c);
                      ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/stdio.h:188:1: note: 'sprintf' has been explicitly marked deprecated here
__deprecated_msg("This function is provided for compatibility reasons only.  Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:215:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning and 4 errors generated.
make[1]: *** [/Users/duhamean/Documents/node/out/Release/obj.target/genrb/deps/icu-small/source/tools/genrb/parse.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [node] Error 2

Additional information

Switching to --without-intl or full ICU fixes the issue. I'll try bisecting to see when this was introduced but I suspect it's the recent ICU update.

Metadata

Metadata

Assignees

Labels

icuIssues and PRs related to the ICU dependency.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions