-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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: default to ppc64 on AIX #9645
Conversation
@bnoordhuis Do you know how make/gmake decides which C compiler to use?
I know you can use export CC=`which gcc`
export CXX=`which g++` but if there's an easy way to set defaults then that'd be useful. |
AIX user space defaults to 32 bit. IBM XLC compiler on AIX defaults to 32 bit. For compatibility, 32 bit remains the default on AIX for GCC. GCC had been defining PPC on AIX. In 64 bit mode (-maix64), GCC added definitions of PPC64 and powerpc64 for compatibility with Linux on Power starting with release GCC 6. |
@gibfahn: regarding gcc detection: https://github.com/nodejs/node/blob/master/configure#L14..L17 |
@gibfahn isn't cc symlinked to gcc on aix? |
@jbergstroem Yep, that configure step works fine, however those variables don't seem to be passed on to the make command. I don't think I'm pretty sure we're specifying |
Hm. Might be a Gyp issue |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM the change proposed. Looks the like discussion is around other ways we could make the experience for people compiling it themselves better.
b95397d
to
e7eb644
Compare
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: nodejs#9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
e7eb644
to
515b1f3
Compare
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: #9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: #9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: #9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: #9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
The ./configure python script searches `gcc -dM -E -` for the ARCH flags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so you don't get the __PPC64__ flag unless you run `gcc -maix64 -dM -E -`. We don't support ppc 32 bit for any OS, so always use ppc64 as the host_arch. PR-URL: #9645 Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: James M Snell <[email protected]>
Checklist
make -j8 test
(UNIX), orvcbuild test nosign
(Windows) passesAffected core subsystem(s)
build
Description of change
The ./configure python script searches
gcc -dM -E -
for the ARCHflags. On AIX, gcc builds in 32 bit mode by default prior to gcc v6, so
you don't get the flag unless you run
gcc -maix64 -dM -E -
.We don't support ppc 32 bit for any OS, so always use ppc64 as the
host_arch.
cc/ @edelsohn (who confirmed that
__PPC64__
wasn't available below gcc v6)cc/ @nodejs/platform-aix