-
-
Notifications
You must be signed in to change notification settings - Fork 553
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
Everything should be rebuilt after GCC upgrade #24703
Comments
Attachment: crash_zrVXNw.log |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Author: Jeroen Demeyer |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
comment:7
Yup, pretty much anything that use C++ has to be rebuilt when you move to gcc-5. gcc dev have made some commitments to ABI stability for the time being. But then you also have the change of ABI for gfortran at gcc-7. The only thing that's rock solid for almost ever is C. |
Commit: |
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
|
This comment has been minimized.
This comment has been minimized.
Reviewer: François Bissey |
comment:13
Not sure why the patchbot is failing but the stuff looks good me, and we should include it ASAP. |
comment:14
Replying to @kiwifb:
I need to upgrade that patchbot. It's running an old version of the patchbot package that has a bug when testing "unsafe" tickets. |
comment:15
Okay, I don't really care since I'm not in the habit of building gcc anyways, but I would appreciate if someone sign off on #21524 so I don't have to keep upgrading it to incorporate changes like this. |
Changed branch from u/jdemeyer/everything_should_be_rebuilt_after_gcc_upgrade to |
comment:26
Apparently the build was interleaved with gcc, which shouldn't happen. This also happens after backing out the ticket so its either a preexisting issue or the makefile isn't regenerated. This is the second build of gcc, it builds in parallel with everything else. |
comment:27
Replying to @vbraun:
I think it's a bug in the previous version of this ticket then.
There shouldn't be a second build of gcc. It would be very useful to see the auto-generated |
Attachment: Makefile.gz |
comment:29
I attached the makefile... |
comment:30
I checked out just this ticket and ran
and the second time is in parallel with lots of other stuff... |
comment:31
OK, I think I know what happened: there is indeed a serious bug that GCC is installed twice. But that bug is not because of this ticket, it is most likely happening since #24599. I think you are just unlucky to hit this bug now and not before. |
comment:32
I would rather prefer to merge this ticket anyway and then deal with further fixes to the GCC build process in a future ticket. |
comment:33
Sure, did you open a followup ticket? |
Changed branch from |
Commit: |
New commits:
|
New commits:
|
Changed branch from u/jdemeyer/057b434babb6ec6eaa7bae4afad4255a7481b1af to |
comment:37
A question related to #24961: should we be checking that |
Changed commit from |
comment:38
Replying to @jhpalmieri:
Really, you need to check both, with the caveat that if you installed with clang and want to switch to gcc you will break your install. So, unfortunately, a not so stupid user could break things. |
comment:40
Replying to @jhpalmieri:
Are you sure? If the GCC spkg is installed, it should be used by Sage. If this is not the case, I consider that a bug. |
comment:41
Replying to @kiwifb:
I don't see why, but maybe I'm missing something? |
comment:42
Replying to @jdemeyer:
I guess you're right, gcc is used, but |
comment:43
Replying to @jhpalmieri:
It won't be installed if it's already installed. Consider that a feature. |
comment:44
I also consider it a feature if it's not installed because clang is going to be used instead. |
comment:45
Replying to @jhpalmieri:
Of course. But that should work now, right? |
Due to C++ ABI incompatibilities, problems occur if code built with earlier versions of GCC is linked against code built with newer versions of GCC. This leads for example to patchbot failures mentioned below.
The simplest solution is to make every package depend on the GCC executable. This way, a GCC upgrade will force everything to be rebuilt. This may be overkill, but it's not a big problem in practice since GCC is upgraded rarely (unlikely other Sage packages, it is never automatically rebuilt except if absolutely needed, see for example #24599).
See attachment: crash_zrVXNw.log for a crash log from the arando i686 patchbot with Sage 8.2.beta5 using GCC 7.2.0. It involves brial and C++ strings.
The following doctests fail:
CC: @kiwifb @embray
Component: packages: standard
Author: Jeroen Demeyer
Branch:
70ff832
Reviewer: François Bissey
Issue created by migration from https://trac.sagemath.org/ticket/24703
The text was updated successfully, but these errors were encountered: