-
Notifications
You must be signed in to change notification settings - Fork 738
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
Remove GCC 4 from containers #4474
Conversation
@AdamBrousseau for review |
jenkins build docker ppc64le centos7 |
I forgot to link GCC-7 on the centos containers |
91ace71
to
e69b7b8
Compare
I recreated the links for GCC in the centos containers |
jenkins build docker ppc64le centos7 |
&& yum clean all \ | ||
&& ln -s /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/cc \ | ||
&& ln -s /opt/rh/devtoolset-7/root/usr/bin/gcc /usr/bin/gcc \ | ||
&& ln -s /opt/rh/devtoolset-7/root/usr/bin/g++ /usr/bin/g++ |
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.
Is it necessary to symlink default gcc? I.e. does something need a default gcc?
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.
git requires cc and Protobuf requires gcc.
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.
ok good enough. I doubt compiler versions matter too much for those dependencies. Unless they fail outright.
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.
I'm not surprised this didn't cause a problem. Running gcc out of the devtoolset requires running a script to setup the environment and libpaths for newer libraries. If this generates a docker container that compiles openj9, I guess we leave it be though.
&& rm -rf gcc-7.tar.xz \ | ||
&& ln -s /usr/local/bin/gcc-7.3 /usr/bin/cc \ | ||
&& ln -s /usr/local/bin/gcc-7.3 /usr/bin/gcc \ | ||
&& ln -s /usr/local/bin/g++-7.3 /usr/bin/g++ |
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.
Is it necessary to symlink default gcc? I.e. does something need a default gcc?
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.
I need to a link to cc to install git, but I don't need the rest of the symlinks
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.
might as well link them all then
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.
you could just use a cc=/usr/local/bin/gcc-7.3
before the git compilation, but I guess this works too
jenkins build docker ppc64le ubuntu16 |
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. @smlambert for final review.
Related #4305 |
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.
systemtest does need gcc
I realized that my tests were flawed and that I did have gcc installed. The build-essentials package installs the default version of gcc on the system. Should I keep it like that or should we specify the version of GCC. I did not see any specification for the version of gcc in the testing repos. |
Talked to Shelley. I think ideally we should keep the same gcc version as the vm compiles (currently 7.3/7.4). Since we already "know" how to build a container with it. |
On Ubuntu18, the default gcc is 7.3. and for Ubuntu16 on ppc64le and x86, can I just use the ubuntu-toolchain and that will currently use gcc-7 (7.4). Are these good enough? |
67636ac
to
89f3d8e
Compare
I have updated the docker containers such that the test containers install gcc from Adopt |
RUN echo yes | cpan install JSON Text::CSV | ||
# Install GCC-7.3 | ||
RUN cd /usr/local \ | ||
&& wget -O gcc-7.tar.xz "https://ci.adoptopenjdk.net/userContent/gcc/gcc730+ccache.ppc64le.tar.xz" \ |
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.
Using these pre-compiled you will need to also add libstdc++.so* to either the LD_LIBRARY_PATH or set it up with ldconfig. Same applies to other instance below.
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.
I added the libstdc++.so* from the precompiled binaries to ldconfig
89f3d8e
to
99f27fc
Compare
99f27fc
to
b753ed0
Compare
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.
Please update and consolidate your commit comment with the PR description. Be sure it indicates why we are making all the changes as there are a few different ones here.
@@ -48,9 +48,6 @@ RUN apt-get update \ | |||
cpio \ | |||
curl \ | |||
file \ | |||
g++-4.8 \ | |||
gcc-4.8 \ | |||
gdb \ |
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.
removing gdb intentionally? Why is it not needed?
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.
It was not intentional. I'll go and test out the container to see if it is actually needed.
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.
This comment is still pending resolution.
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.
We tried to test this but were blocked by not having xml parser module in the container. @jdekonin recalls gdb being added by Colton for testing purposes in order to generate cores and we didn't think it was needed anymore. We could leave it in for now until the parser is added and we can test it properly. Thoughts?
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.
If you want to remove it, it can always be quickly added back if a problem is found. Although, according to that explanation we could miss getting a core file for a failure if it is needed. Leaving it in is less likely to break anything.
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.
I added gdb back in
jenkins build docker s390x ubuntu16 |
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. @pshipton for merge.
@samuel-rubin don't forget to rebuild all the images once this merges.
Removing GCC 4 because it is no longer being used to compile java Installing GCC-7 where it is not already being installed Adding libstdc++.so* to ldconfig when using precompiled gcc-7 [skip ci] Signed-off-by: Samuel Rubin <samuel.rubin@ibm.com>
b753ed0
to
c2fb9d7
Compare
Removing GCC 4 because it is no longer being used to compile java
Installing GCC-7 where it is not already being installed
Adding libstdc++.so* to ldconfig when using precompiled gcc-7
[skip ci]
Signed-off-by: Samuel Rubin samuel.rubin@ibm.com