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
MPIR's configure fails with GCC 5.x #18247
Comments
comment:1
The following patch to --- src/configure.orig 2014-09-14 21:59:13.000000000 +0200
+++ src/configure 2015-04-18 21:21:22.170454397 +0200
@@ -5663,6 +5663,9 @@
#if defined(__GNUC__) && !defined(__clang__)
typedef unsigned long long t1;typedef t1*t2;
+#if defined(__GNUC_STDC_INLINE__) /* e.g. GCC 5.x default */
+extern
+#endif
__inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
f(){static const struct{t1 n;t1 src[9];t1 want[9];}d[]={{1,{0},{1}},};t1 got[9];int i;
@@ -6977,6 +6980,9 @@
#if defined(__GNUC__) && !defined(__clang__)
typedef unsigned long long t1;typedef t1*t2;
+#if defined(__GNUC_STDC_INLINE__) /* e.g. GCC 5.x default */
+extern
+#endif
__inline__ t1 e(t2 rp,t2 up,int n,t1 v0)
{t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;}
f(){static const struct{t1 n;t1 src[9];t1 want[9];}d[]={{1,{0},{1}},};t1 got[9];int i; (Haven't messed with |
Changed upstream from Not yet reported upstream; Will do shortly. to Reported upstream. No feedback yet. |
comment:3
P.S.: |
Attachment: MPIR-2.7.0_fix_configure_with_GCC_5.x.upstream.patch.gz Patch submitted upstream. (Only fixes |
comment:4
Just noticed there are bugs w.r.t. (E.g. if I install MPIR with |
Changed upstream from Reported upstream. No feedback yet. to Completely fixed; Fix reported upstream |
Branch: u/leif/MPIR_configure_GCC_5.x |
Commit: |
Author: Leif Leonhardy |
New commits:
|
comment:8
Why not unconditionally use |
comment:9
Replying to @jdemeyer:
Thought of that, too (already when we were fixing the test for After all, upstream will decide... |
comment:10
P.S.: I didn't "bump" the patch level because MPIR 2.7.0-alpha12 didn't have one, although it was already patched before (meanwhile, in Sage 6.7.beta3, even twice)... ;-) |
comment:12
On the other hand, with |
comment:13
Replying to @nexttime:
Since this is purely about a package not compiling, there is not even a need to bump the patchlevel:
|
comment:14
Replying to @jdemeyer:
Bike-shedding? This test is solely for GCC. Other compilers may pretend they're GCC, but then they should also define the respective macros. (We explicitly exclude Feel free to submit some other patch upstream. |
comment:15
P.S.: Using |
comment:16
Replying to @nexttime:
I missed this part. I still don't like your patch (in fact, I don't even like the test), but I can accept it. |
Reviewer: Jeroen Demeyer |
comment:17
Replying to @jdemeyer:
I don't like the test either; I'd simply require some minimal version of GCC. But as I said, it's IMHO up to upstream to clean up / decide on the tests...
Thanks. We can discuss again when finally a new upstream release gets out... ;-) I just don't want to have a Sage 6.7 that cannot even bootstrap Sage's GCC 4.9.2 with GCC 5.x for no real reason; distros with GCC 5.1 will presumably pop up soon. |
Changed branch from u/leif/MPIR_configure_GCC_5.x to |
This test already failed with Clang (cf. #13948); now that GCC (5.x) defaults to STDC inlining (as opposed to GNUC inlining) semantics, we have to adapt the test (which is supposed to detect an unrelated bug in older GCC versions) again.
Upstream: Completely fixed; Fix reported upstream
CC: @wbhart @kiwifb
Component: packages: standard
Keywords: GNUC STDC inline
Author: Leif Leonhardy
Branch/Commit:
764ad4e
Reviewer: Jeroen Demeyer
Issue created by migration from https://trac.sagemath.org/ticket/18247
The text was updated successfully, but these errors were encountered: