-
Notifications
You must be signed in to change notification settings - Fork 30.7k
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 process generating AVX512 instructions erroneously #46789
Comments
Does node v18.13.0 build and work fine? What about node v18.14.0? Also, which compiler and what compiler version are you using? Which version of binutils? |
No follow-up so I'm closing this but can reopen when OP provides the requested information. FWIW, I'm pretty sure this must be some local setup issue because node's build flags don't go beyond AVX2. And that's localized to deps/base64, everything else is SSE 4.2 or lower, i.e., 2008 era hardware. |
My apologies for the delay in responding. The binutils version is 2.27-44. The OS is RHEL 7.9. The compiler is gcc/8.4.0. |
I'm betting it's the addition of simdutf, which requires a newer build environment. |
Newer build environment? So ... newer cmake, gcc, etc? Or is a different
build environment needed?
Calvin Dodge
…On Fri, Mar 3, 2023 at 1:08 PM mscdex ***@***.***> wrote:
I'm betting it's the addition of simdutf, which requires a newer build
environment
<3a54f7d#diff-a217e65fbb288a460c7f8921aa1ed5fc3b5a5e3e749b919b24942a53a836e397R19-R20>
.
—
Reply to this email directly, view it on GitHub
<#46789 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEWSED7LR2KUHUXJYT7Y5VDW2I6TDANCNFSM6AAAAAAVE6HBRE>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
As noted in the linked commit, at least newer assembler/binutils. |
The issue comes when using a compiler that is capable of compiling advanced instructions (e.g., AVX-512), with all of the corresponding headers and so forth, with an assembler that does not have this capacity. The code can check what the compiler is capable of, but it has no access to the assembler. It is assumed that whatever the compiler produces, the assembler can handle. That's what should hold on all good Linux distribution: the version of GCC should match the gas version. It is the mismatch that is a problem. CentOS is based of RedHat 7, and RedHat 7 is designed for GCC 4.8. |
Trying to build node 18.14.2 on a Centos 7 system with older Xeon CPUs. Ran configure. During make, it's obvious the compiler has generated AVX512 instructions, which aren't valid for older Xeons. What flag is needed to prevent this?
The text was updated successfully, but these errors were encountered: