Opened 6 years ago

Closed 6 years ago

Last modified 5 years ago

#20231 closed enhancement (fixed)

Blacklist GCC 4.8.x

Reported by: jdemeyer Owned by:
Priority: major Milestone: sage-7.2
Component: build: configure Keywords:
Cc: Merged in:
Authors: Jeroen Demeyer Reviewers: Frédéric Chapoton
Report Upstream: N/A Work issues:
Branch: 37defe3 (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by jdemeyer)

While working on #20226, I got hit by a similar problem as #14460, namely https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56982

Since this bug is supposed to be fixed upstream in GCC 4.9.0, I think the time has come to blacklist all GCC versions older than 4.9.

Change History (10)

comment:1 Changed 6 years ago by jdemeyer

  • Branch set to u/jdemeyer/blacklist_gcc_4_8_x

comment:2 Changed 6 years ago by jdemeyer

  • Commit set to 37defe3940307cd63a41d3d993715bba0c529c18
  • Status changed from new to needs_review

New commits:

37defe3Blacklist GCC versions 4.8.x

comment:3 Changed 6 years ago by chapoton

  • Reviewers set to Frédéric Chapoton
  • Status changed from needs_review to positive_review

looks good to me

comment:4 Changed 6 years ago by chapoton

  • Milestone changed from sage-7.1 to sage-7.2

comment:5 Changed 6 years ago by vbraun

  • Branch changed from u/jdemeyer/blacklist_gcc_4_8_x to 37defe3940307cd63a41d3d993715bba0c529c18
  • Resolution set to fixed
  • Status changed from positive_review to closed

comment:6 follow-up: Changed 6 years ago by embray

  • Commit 37defe3940307cd63a41d3d993715bba0c529c18 deleted

Was this announced in sage-devel? After rebasing branch I was working in on the current develop sage suddenly wants to compile gcc because of this. gcc 4.8 is the default version on Ubuntu 14.04 which is the current LTS (not counting 16.04 which hasn't quite yet been released).

It seems extreme to me to blacklist an entire compiler when there's a simple workaround (-fno-tree-dominator-opts) that can be applied only for that version. As a compromise, perhaps issue a loud warning when the workaround is used as it may affect performance, for anyone who cares. It would only need to be enabled for those modules that need it.

comment:7 in reply to: ↑ 6 Changed 6 years ago by jdemeyer

  • Description modified (diff)

Replying to embray:

Was this announced in sage-devel?

No.

It seems extreme to me to blacklist an entire compiler when there's a simple workaround (-fno-tree-dominator-opts) that can be applied only for that version.

There is no simple workaround. The -fno-tree-dominator-opts workaround happens to fix one particular instance of the problem, not the problem in general. In particular, -fno-tree-dominator-opts does not fix the similar issue from #20226. I was too lazy to investigate yet another workaround for #20226.

comment:8 Changed 6 years ago by embray

Don't you think dropping support for an entire series of compiler versions that is still relatively commonly in use, without a deprecation process and without warning is a bit of a problem?

I'm sure there's a workaround in the other case too.

comment:9 Changed 6 years ago by embray

For that matter even if it -fno-tree-dominator-opts were the workaround it doesn't need to be applied to the whole module. It could be applied at the function level too. If there's some optimization that's producing incorrect code around setjmp that's not surprising but I'm sure we could see what it's doing and disable that.

comment:10 Changed 5 years ago by jdemeyer

Reverting in #20594.

Note: See TracTickets for help on using tickets.