-
Notifications
You must be signed in to change notification settings - Fork 166
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 and install gcc 4.9.4 on rhel72 #1157
Conversation
Not sure the commit title is quite right as it also adds the parts to install java as well right ? |
or maybe its just the comment that is incorrect at the start ? |
Hmm, I think java would get installed before this commit. The only new thing installed is gcc |
I assume all of the packages being installed are dependencies required for gcc to be compiled right ? |
yea, gcc needs those three dependencies. |
cfec98f
to
59021ba
Compare
As part of testing this out we found a pieces that were missed during the port over from the old ansible scripts. These included setting up the user home directory and ccache. Just running on existing machines is not really a good enough test as it does not validate if something was missed. @gibfahn could you review again as I think it is ready to land. |
cbf74b7
to
2eadc17
Compare
devtoolset is available from the SCLo from CentOS, I would have assumed that it would work for RHEL as well. What we're doing for Node 10 on CentOS 6 & 7 is pull in devtoolset-6, this is being done in both test and release now so we're at gcc-6 level. Thankfully because of the Red Hat hackery the binaries are backward compatible with vanilla CentOS 6 without devtoolset-* installed. I'm about to land those changes here #1223 but they are already active in CI and we are switching between devtoolset-2 for pre-10 (no devtoolset on centos7 for pre-10) and devtoolset-6 for 10+ (for both 6 & 7). Please be aware that if you're pushing for 4.9.4 you're probably pulling in binutils 2.25 (I think) which isn't going to be enough. The OpenSSL upgrade is introducing some new headaches and we need to have 2.26. See #1229, for EL I've just been assuming that devtoolset-6 gets us out of that tangle, does it not help here? I currently have a 4.9.4 + binutils 2.28 build for the ARM cross compiler so I know it's possible to munge the two. Just make sure you test |
@rvagg what do you mean by 'not enough' ? I guess its the asm support, if so then is there more impact than slower performance? Just thinking through what happens if we have to fix after the initial 10.x release. |
In the past I'm we looked for a devtoolset equivalent for our platforms but either did not find one or did not find one with support for s390 and Power. @rvagg have you seen one for those platforms? |
Testing linuxOne, does look like as is too old
Testing on power also seems like as will also be too old.
|
@jBarz can you investigate to see what/how we have to do in order to get a later as onto the machine in similar way to gcc where it will only be used for newer versions? |
Builds and installs gcc 4.9 which isn't officially supported. The install could take up to 30 mins. Must use the following export PATH=/data/gcc-4.9/bin:$PATH export LDFLAGS="-Wl,-rpath,$(dirname $(/data/gcc-4.9/bin/gcc --print-file-name libgcc_s.so))"
Added changes to build and install binutils 2.28.1 in the same location as gcc 4.9.4 |
sorry for the delay--if you have binutils <2.26 then you won't get asm built into openssl and you won't be able to take advantage of cpu crypto routines, which I assume will be a problem for your platforms? it'll be possible to compile and run with older binutils but you won't get an optimal binary. We're going to have to consider the messaging implications of that .. it's going to be tricky. @jBarz if dropping in 2.28.1 leads to a 👍 compile then all good! I've taken a similar approach of putting a new binutils with gcc 4.9.4 for the cross-compiler for ARM so we're essentially solving it in the same way. |
@rvagg, if we make it good, otherwise I think we'll need something like 'the performance of the initial linxuOne and Linxux on Power builds for 10.x will not be optimal until we update our build tooling'. |
@mhdawson you technically have until we upgrade to OpenSSL 1.1.1, and there's no urgency to do that once it's released (as far as I understand), folks might be itching for TLS 1.3 but that's about all we get from 1.1.1 over 1.1.0 in the short term. I think you could use an older binutils and then drop in a newer one and the binaries will work on the same distro-level, so you have some runway to figure that out. |
Both the compilers and binutils levels are now upgraded. AIX we still need to figure out but I think we are ok for 10.X |
I'm going to ahead and land this on Monday. |
Builds and installs gcc 4.9 which isn't officially supported. The install could take up to 30 mins. Must use the following: export PATH=/data/gcc-4.9/bin:$PATH export LD_LIBRARY_PATH="/data/gcc-4.9/lib64:$LD_LIBRARY_PATH" PR-URL: #1157 Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Landed as 0683e99 |
You can find the devtoolset for s390x here - we build and maintain a CentOS clone called ClefOS. Also I think RHEL recently also released a subset of the SCLO for s390x. |
Builds and installs gcc 4.9 which isn't officially supported.
The install could take up to 30 mins.
Must use the following
export PATH=/data/gcc-4.9/bin:$PATH
export LDFLAGS="-Wl,-rpath,$(dirname $(/data/gcc-4.9/bin/gcc --print-file-name libgcc_s.so))"