Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build with V8 5.9 fails #3

Closed
targos opened this issue May 16, 2017 · 4 comments
Closed

Build with V8 5.9 fails #3

targos opened this issue May 16, 2017 · 4 comments

Comments

@targos
Copy link
Member

targos commented May 16, 2017

This is probably related to the latest ICU update.
/cc @nodejs/intl

I am trying to build this branch: https://github.com/targos/node/tree/v8-5.9 (master + V8 update)

Error:

g++ '-DV8_GYP_BUILD' '-DV8_TARGET_ARCH_X64' '-DENABLE_DISASSEMBLER' '-DV8_I18N_SUPPORT' '-DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC' '-DUCONFIG_NO_SERVICE=1' '-DUCONFIG_NO_REGULAR_EXPRESSIONS=1' '-DU_ENABLE_DYLOAD=0' '-DU_STATIC_IMPLEMENTATION=1' '-DU_HAVE_STD_STRING=0' '-DUCONFIG_NO_BREAK_ITERATION=0' '-DUCONFIG_NO_LEGACY_CONVERSION=1' -I../deps/v8 -I../. -I/home/mzasso/git/nodejs/node-v8-59/out/Release/obj/gen -I../deps/v8/include -I../deps/icu-small/source/i18n -I../deps/icu-small/source/common  -pthread -Wall -Wextra -Wno-unused-parameter -m64 -fno-strict-aliasing -m64 -fdata-sections -ffunction-sections -O3 -O3 -fno-omit-frame-pointer -fno-rtti -fno-exceptions -std=gnu++0x -MMD -MF /home/mzasso/git/nodejs/node-v8-59/out/Release/.deps//home/mzasso/git/nodejs/node-v8-59/out/Release/obj.target/v8_base/deps/v8/src/i18n.o.d.raw   -c -o /home/mzasso/git/nodejs/node-v8-59/out/Release/obj.target/v8_base/deps/v8/src/i18n.o ../deps/v8/src/i18n.cc
In file included from ../deps/icu-small/source/common/unicode/platform.h:25:0,
                 from ../deps/icu-small/source/common/unicode/ptypes.h:52,
                 from ../deps/icu-small/source/common/unicode/umachine.h:46,
                 from ../deps/icu-small/source/common/unicode/uversion.h:30,
                 from ../deps/v8/src/i18n.h:11,
                 from ../deps/v8/src/i18n.cc:6:
../deps/v8/src/i18n.cc: In function ‘v8::internal::Object* v8::internal::LocaleConvertCase(v8::internal::Handle<v8::internal::String>, v8::internal::Isolate*, bool, const char*)’:
../deps/icu-small/source/common/unicode/urename.h:364:47: error: ‘u_strToUpper_59’ was not declared in this scope
 #define u_strToUpper U_ICU_ENTRY_POINT_RENAME(u_strToUpper)
                                               ^
../deps/icu-small/source/common/unicode/uvernum.h:111:43: note: in definition of macro ‘U_DEF_ICU_ENTRY_POINT_RENAME’
 #define U_DEF_ICU_ENTRY_POINT_RENAME(x,y) x ## y
                                           ^
../deps/icu-small/source/common/unicode/uvernum.h:113:40: note: in expansion of macro ‘U_DEF2_ICU_ENTRY_POINT_RENAME’
 #define U_ICU_ENTRY_POINT_RENAME(x)    U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_ICU_VERSION_SUFFIX)
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/icu-small/source/common/unicode/urename.h:364:22: note: in expansion of macro ‘U_ICU_ENTRY_POINT_RENAME’
 #define u_strToUpper U_ICU_ENTRY_POINT_RENAME(u_strToUpper)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/i18n.cc:1025:39: note: in expansion of macro ‘u_strToUpper’
   auto case_converter = is_to_upper ? u_strToUpper : u_strToLower;
                                       ^~~~~~~~~~~~
../deps/icu-small/source/common/unicode/urename.h:357:47: error: ‘u_strToLower_59’ was not declared in this scope
 #define u_strToLower U_ICU_ENTRY_POINT_RENAME(u_strToLower)
                                               ^
../deps/icu-small/source/common/unicode/uvernum.h:111:43: note: in definition of macro ‘U_DEF_ICU_ENTRY_POINT_RENAME’
 #define U_DEF_ICU_ENTRY_POINT_RENAME(x,y) x ## y
                                           ^
../deps/icu-small/source/common/unicode/uvernum.h:113:40: note: in expansion of macro ‘U_DEF2_ICU_ENTRY_POINT_RENAME’
 #define U_ICU_ENTRY_POINT_RENAME(x)    U_DEF2_ICU_ENTRY_POINT_RENAME(x,U_ICU_VERSION_SUFFIX)
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../deps/icu-small/source/common/unicode/urename.h:357:22: note: in expansion of macro ‘U_ICU_ENTRY_POINT_RENAME’
 #define u_strToLower U_ICU_ENTRY_POINT_RENAME(u_strToLower)
                      ^~~~~~~~~~~~~~~~~~~~~~~~
../deps/v8/src/i18n.cc:1025:54: note: in expansion of macro ‘u_strToLower’
   auto case_converter = is_to_upper ? u_strToUpper : u_strToLower;
                                                      ^~~~~~~~~~~~
deps/v8/src/v8_base.target.mk:659: recipe for target '/home/mzasso/git/nodejs/node-v8-59/out/Release/obj.target/v8_base/deps/v8/src/i18n.o' failed
@targos
Copy link
Member Author

targos commented May 22, 2017

Ping. This is only with V8 5.9. 6.0 doesn't have this issue.

Also cc @nodejs/v8.

@bmeurer
Copy link
Member

bmeurer commented May 22, 2017

cc @psmarshall

@bnoordhuis
Copy link
Member

At a guess, i18n.cc needs to #include "unicode/ustring.h".

@targos
Copy link
Member Author

targos commented May 22, 2017

@bnoordhuis That fixes it. Thank you!

@targos targos closed this as completed May 31, 2017
nodejs-ci pushed a commit that referenced this issue Oct 27, 2017
Currently when running the test without an internet connection there are
two JavaScript test failures and one cctest. The cctest only fails on
Mac as far as I know. (I've only tested using Mac and Linux thus far).

This commit moves the two JavaScript tests to test/internet.

The details for test_inspector_socket_server.cc:

[ RUN      ] InspectorSocketServerTest.FailsToBindToNodejsHost
make[1]: *** [cctest] Segmentation fault: 11
make: *** [test] Error 2

lldb output:

[ RUN      ] InspectorSocketServerTest.FailsToBindToNodejsHost
Process 63058 stopped
* thread #1: tid = 0x7b175, 0x00007fff96d04384
* libsystem_info.dylib`_gai_simple + 87, queue =
* 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
* address=0x0)
    frame #0: 0x00007fff96d04384 libsystem_info.dylib`_gai_simple + 87
libsystem_info.dylib`_gai_simple:
->  0x7fff96d04384 <+87>: movw   (%rdx), %ax
    0x7fff96d04387 <+90>: movw   %ax, -0x2a(%rbp)
    0x7fff96d0438b <+94>: movq   %r13, -0x38(%rbp)
    0x7fff96d0438f <+98>: movq   0x18(%rbp), %rcx

(lldb) bt
* thread #1: tid = 0x7b175, 0x00007fff96d04384
* libsystem_info.dylib`_gai_simple + 87, queue =
* 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
* address=0x0)
  * frame #0: 0x00007fff96d04384 libsystem_info.dylib`_gai_simple + 87
    frame #1: 0x00007fff96cfe98b libsystem_info.dylib`search_addrinfo +
179
    frame #2: 0x00007fff96cfafef libsystem_info.dylib`si_addrinfo + 2255
    frame #3: 0x00007fff96cfa67b libsystem_info.dylib`getaddrinfo + 179
    frame #4: 0x00000001017d8888
cctest`uv__getaddrinfo_work(w=0x00007fff5fbfe210) + 72 at
getaddrinfo.c:102
    frame #5: 0x00000001017d880e
cctest`uv_getaddrinfo(loop=0x000000010287cb80, req=0x00007fff5fbfe1c8,
cb=0x0000000000000000, hostname="nodejs.org", service="0",
hints=0x00007fff5fbfe268) + 734 at getaddrinfo.c:192
    frame #6: 0x000000010171f781
cctest`node::inspector::InspectorSocketServer::Start(this=0x00007fff5fbfe658)
+ 801 at inspector_socket_server.cc:398
    frame #7: 0x00000001016ed590
cctest`InspectorSocketServerTest_FailsToBindToNodejsHost_Test::TestBody(this=0x0000000105001fd0)
+ 288 at test_inspector_socket_server.cc:593

I'm not sure about the exact cause for this but when using a standalone
c program to simulate this it seems like when the ai_flags
`AI_NUMERICSERV` is set, which is done in inspector_socket_server.cc
line 394, the servname (the port in the FailsToBindToNodejsHost test) is
expected to be a numeric port string to avoid looking it up in
/etc/services. When the port is 0 as is it was before this commit the
segment fault occurs but not if it is non-zero.

PR-URL: nodejs/node#16255
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
nodejs-ci pushed a commit that referenced this issue Dec 16, 2017
Remove a pointless adapter frame  by fixing up the function's formal
parameter count.  Before:

    frame #0: 0x000033257ea446d5 onParserExecute(...)
    frame #1: 0x000033257ea3b93f <adaptor>
    frame #2: 0x000033257ea41959 <internal>
    frame #3: 0x000033257e9840ff <entry>

After:

    frame #0: 0x00000956287446d5 onParserExecute(...)
    frame #1: 0x0000095628741959 <internal>
    frame #2: 0x00000956286840ff <entry>

PR-URL: nodejs/node#17693
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Khaidi Chu <i@2333.moe>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants