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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions