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

Debug build failed to compile on Apple Silicon #43894

Closed
legendecas opened this issue Jul 18, 2022 · 10 comments
Closed

Debug build failed to compile on Apple Silicon #43894

legendecas opened this issue Jul 18, 2022 · 10 comments
Labels
arm Issues and PRs related to the ARM platform. build Issues and PRs related to build files or the CI. confirmed-bug Issues with confirmed bugs. macos Issues and PRs related to the macOS platform / OSX.

Comments

@legendecas
Copy link
Member

Debug build failed to compile on Apple M1 Max (arm64) with #39775. Example error messages:

FAILED: obj/deps/base64/base64/lib/arch/neon64/base64_neon64.codec.o
cc -MMD -MF obj/deps/base64/base64/lib/arch/neon64/base64_neon64.codec.o.d -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 -DBASE64_STATIC_DEFINE -DHAVE_NEON64=1 -DDEBUG -D_DEBUG -DV8_ENABLE_CHECKS -I../../deps/base64/base64/include -I../../deps/base64/base64/lib -O0 -gdwarf-2 -mmacosx-version-min=10.15 -arch arm64 -Wall -Wendif-labels -W -Wno-unused-parameter -fno-strict-aliasing  -c ../../deps/base64/base64/lib/arch/neon64/codec.c -o obj/deps/base64/base64/lib/arch/neon64/base64_neon64.codec.o
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:32:44: error: registers must be sequential
                "and  %[t3].16b, v14.16b,   %[n63].16b \n\t"
                                                         ^
<inline asm>:10:40: note: instantiated into assembly here
        tbl v12.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v3.16b
                                              ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:32:44: error: unknown token in expression
                "and  %[t3].16b, v14.16b,   %[n63].16b \n\t"
                                                         ^
<inline asm>:10:48: note: instantiated into assembly here
        tbl v12.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v3.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:32:44: error: invalid operand
                "and  %[t3].16b, v14.16b,   %[n63].16b \n\t"
                                                         ^
<inline asm>:10:48: note: instantiated into assembly here
        tbl v12.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v3.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:35:75: error: registers must be sequential
                "tbl v12.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t0].16b \n\t"
                                                                                        ^
<inline asm>:11:40: note: instantiated into assembly here
        tbl v13.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v2.16b
                                              ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:35:75: error: unknown token in expression
                "tbl v12.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t0].16b \n\t"
                                                                                        ^
<inline asm>:11:48: note: instantiated into assembly here
        tbl v13.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v2.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:35:75: error: invalid operand
                "tbl v12.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t0].16b \n\t"
                                                                                        ^
<inline asm>:11:48: note: instantiated into assembly here
        tbl v13.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v2.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:36:75: error: registers must be sequential
                "tbl v13.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t1].16b \n\t"
                                                                                        ^
<inline asm>:12:40: note: instantiated into assembly here
        tbl v14.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v1.16b
                                              ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:36:75: error: unknown token in expression
                "tbl v13.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t1].16b \n\t"
                                                                                        ^
<inline asm>:12:48: note: instantiated into assembly here
        tbl v14.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v1.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:36:75: error: invalid operand
                "tbl v13.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t1].16b \n\t"
                                                                                        ^
<inline asm>:12:48: note: instantiated into assembly here
        tbl v14.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v1.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:37:75: error: registers must be sequential
                "tbl v14.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t2].16b \n\t"
                                                                                        ^
<inline asm>:13:40: note: instantiated into assembly here
        tbl v15.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v0.16b
                                              ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:37:75: error: unknown token in expression
                "tbl v14.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t2].16b \n\t"
                                                                                        ^
<inline asm>:13:48: note: instantiated into assembly here
        tbl v15.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v0.16b
                                                      ^
In file included from ../../deps/base64/base64/lib/arch/neon64/codec.c:62:
../../deps/base64/base64/lib/arch/neon64/enc_loop.c:37:75: error: invalid operand
                "tbl v14.16b, {%[l0].16b, %[l1].16b, %[l2].16b, %[l3].16b}, %[t2].16b \n\t"
                                                                                        ^
<inline asm>:13:48: note: instantiated into assembly here
        tbl v15.16b, {v5.16b, v6.16b, v7.16b, v16.16b}, v0.16b
                                                      ^
12 errors generated.

A clean build can reproduce the problem locally.

Originally posted by @legendecas in #39775 (comment)

@targos
Copy link
Member

targos commented Jul 18, 2022

I can reproduce.

@targos targos added confirmed-bug Issues with confirmed bugs. build Issues and PRs related to build files or the CI. macos Issues and PRs related to the macOS platform / OSX. arm Issues and PRs related to the ARM platform. labels Jul 18, 2022
@legendecas
Copy link
Member Author

/cc @mscdex

@mscdex
Copy link
Contributor

mscdex commented Jul 18, 2022

Is it only a problem with debug mode (e.g. is it just the -O0 causing it)?

@mscdex
Copy link
Contributor

mscdex commented Jul 18, 2022

Also is this limited to clang? Everything seems to have passed for the debug build on Linux arm64 with gcc.

@targos
Copy link
Member

targos commented Jul 18, 2022

Yes, it only affects debug mode. I don't have gcc installed on my mac.

@mscdex
Copy link
Contributor

mscdex commented Jul 18, 2022

Upstream issue: aklomp/base64#96

@xtx1130
Copy link
Contributor

xtx1130 commented Jul 19, 2022

$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
Apple clang version 13.0.0 (clang-1300.0.29.30)
Target: arm64-apple-darwin21.4.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

The same question

@xtx1130
Copy link
Contributor

xtx1130 commented Jul 27, 2022

Is there any progress on this issue, or is there any other way for me to compile the main branch codes except --debug?

@mscdex
Copy link
Contributor

mscdex commented Jul 27, 2022

@xtx1130 Feel free to temporarily apply this patch. The upstream dependency has a different solution in the works.

mscdex added a commit to mscdex/io.js that referenced this issue Jul 28, 2022
@mscdex
Copy link
Contributor

mscdex commented Jul 28, 2022

Can those of you having the problem please test #44032 ?

mscdex added a commit to mscdex/io.js that referenced this issue Jul 30, 2022
danielleadams pushed a commit that referenced this issue Aug 16, 2022
Fixes: #43894
PR-URL: #44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
ruyadorno pushed a commit that referenced this issue Aug 23, 2022
Fixes: #43894
PR-URL: #44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
targos pushed a commit that referenced this issue Sep 5, 2022
Fixes: #43894
PR-URL: #44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Fyko pushed a commit to Fyko/node that referenced this issue Sep 15, 2022
Fixes: nodejs#43894
PR-URL: nodejs#44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
oraluben pushed a commit to noslate-project/node that referenced this issue Sep 29, 2022
Fixes: nodejs/node#43894
PR-URL: nodejs/node#44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
oraluben pushed a commit to noslate-project/node that referenced this issue Sep 29, 2022
Fixes: nodejs/node#43894
PR-URL: nodejs/node#44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this issue Jan 3, 2023
Fixes: nodejs/node#43894
PR-URL: nodejs/node#44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
guangwong pushed a commit to noslate-project/node that referenced this issue Jan 3, 2023
Fixes: nodejs/node#43894
PR-URL: nodejs/node#44032
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Mestery <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Feng Yu <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
arm Issues and PRs related to the ARM platform. build Issues and PRs related to build files or the CI. confirmed-bug Issues with confirmed bugs. macos Issues and PRs related to the macOS platform / OSX.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants