diff mbox

stress-ng: workaround sparc64 gcc ICE

Message ID 20160514184227.GA2898@waldemar-brodkorb.de
State Rejected
Headers show

Commit Message

Waldemar Brodkorb May 14, 2016, 6:42 p.m. UTC
Disable vector code to avoid gcc ICE while
cross-compiling for sparc64.

Fixes autobuilder failures:
http://autobuild.buildroot.net/results/b527ccdbdfeaba6789528e68df93d9c7216e758a/
http://autobuild.buildroot.net/results/d658f82c66d93515276dcb6cec8d3690459fbf05/

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 package/stress-ng/0001-disable-vector-sparc64.patch | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 package/stress-ng/0001-disable-vector-sparc64.patch

Comments

Thomas Petazzoni May 15, 2016, 7:38 p.m. UTC | #1
Hello,

On Sat, 14 May 2016 20:42:27 +0200, Waldemar Brodkorb wrote:

> diff --git a/package/stress-ng/0001-disable-vector-sparc64.patch b/package/stress-ng/0001-disable-vector-sparc64.patch
> new file mode 100644
> index 0000000..e740b76
> --- /dev/null
> +++ b/package/stress-ng/0001-disable-vector-sparc64.patch
> @@ -0,0 +1,21 @@
> +Reported upstream:
> +https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/1581843

It was weird to report a gcc bug against the package that fails to
build.
> +diff -Nur stress-ng-0.04.16.orig/stress-ng.h stress-ng-0.04.16/stress-ng.h
> +--- stress-ng-0.04.16.orig/stress-ng.h	2015-09-07 11:04:09.000000000 +0200
> ++++ stress-ng-0.04.16/stress-ng.h	2016-05-14 20:16:10.543917851 +0200
> +@@ -457,9 +457,12 @@
> + #define STRESS_X86	1
> + #endif
> + 
> ++/* triggers gcc ICE */
> ++#if !defined(__sparc_v9__)
> + #if NEED_GNUC(4,7,0)
> + #define STRESS_VECTOR	1
> + #endif
> ++#endif
> + 
> + /* NetBSD does not define MAP_ANONYMOUS */
> + #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)

What about using the patch that was actually committed upstream, i.e
http://kernel.ubuntu.com/git/cking/stress-ng.git/commit/?id=9b5a3aaffdd613f03c10ebe3550b89193e9993ef
according to the bug report you're pointing to?

Thanks!

Thomas
Waldemar Brodkorb May 15, 2016, 7:46 p.m. UTC | #2
Hi Thomas,
Thomas Petazzoni wrote,

> Hello,
> 
> On Sat, 14 May 2016 20:42:27 +0200, Waldemar Brodkorb wrote:
> 
> > diff --git a/package/stress-ng/0001-disable-vector-sparc64.patch b/package/stress-ng/0001-disable-vector-sparc64.patch
> > new file mode 100644
> > index 0000000..e740b76
> > --- /dev/null
> > +++ b/package/stress-ng/0001-disable-vector-sparc64.patch
> > @@ -0,0 +1,21 @@
> > +Reported upstream:
> > +https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/1581843
> 
> It was weird to report a gcc bug against the package that fails to
> build.

Why? I think ICE must be reported to GCC upstream.
I reported a bug to stress-ng, and someone else reported some time
ago a gcc bug regarding the same code failing for powerpc.
What is weird here?

> > +diff -Nur stress-ng-0.04.16.orig/stress-ng.h stress-ng-0.04.16/stress-ng.h
> > +--- stress-ng-0.04.16.orig/stress-ng.h	2015-09-07 11:04:09.000000000 +0200
> > ++++ stress-ng-0.04.16/stress-ng.h	2016-05-14 20:16:10.543917851 +0200
> > +@@ -457,9 +457,12 @@
> > + #define STRESS_X86	1
> > + #endif
> > + 
> > ++/* triggers gcc ICE */
> > ++#if !defined(__sparc_v9__)
> > + #if NEED_GNUC(4,7,0)
> > + #define STRESS_VECTOR	1
> > + #endif
> > ++#endif
> > + 
> > + /* NetBSD does not define MAP_ANONYMOUS */
> > + #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
> 
> What about using the patch that was actually committed upstream, i.e
> http://kernel.ubuntu.com/git/cking/stress-ng.git/commit/?id=9b5a3aaffdd613f03c10ebe3550b89193e9993ef
> according to the bug report you're pointing to?

First, it was committed after my buildroot submission, second it
does not apply for the old version used in buildroot and can't be
used. Either we update to latest and add the patch, or we add my
hack.

best regards
 Waldemar
Thomas Petazzoni May 15, 2016, 8:16 p.m. UTC | #3
Hello,

On Sun, 15 May 2016 21:46:35 +0200, Waldemar Brodkorb wrote:

> > > diff --git a/package/stress-ng/0001-disable-vector-sparc64.patch b/package/stress-ng/0001-disable-vector-sparc64.patch
> > > new file mode 100644
> > > index 0000000..e740b76
> > > --- /dev/null
> > > +++ b/package/stress-ng/0001-disable-vector-sparc64.patch
> > > @@ -0,0 +1,21 @@
> > > +Reported upstream:
> > > +https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/1581843  
> > 
> > It was weird to report a gcc bug against the package that fails to
> > build.  
> 
> Why? I think ICE must be reported to GCC upstream.
> I reported a bug to stress-ng, and someone else reported some time
> ago a gcc bug regarding the same code failing for powerpc.
> What is weird here?

That you reported the bug to stress-ng.

When I have a compiler failure, I never report the bug to the package
causing the compiler failure, but directly to the gcc developers.

> > > + /* NetBSD does not define MAP_ANONYMOUS */
> > > + #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)  
> > 
> > What about using the patch that was actually committed upstream, i.e
> > http://kernel.ubuntu.com/git/cking/stress-ng.git/commit/?id=9b5a3aaffdd613f03c10ebe3550b89193e9993ef
> > according to the bug report you're pointing to?  
> 
> First, it was committed after my buildroot submission, second it
> does not apply for the old version used in buildroot and can't be
> used.

And the backport is complicated?

> Either we update to latest and add the patch, or we add my
> hack.

What I dislike with adding the hack is that we will most likely forget
about it and never update to the latest upstream version. And when
we'll update (if we ever do), since the hack is not the same as what
was done upstream, we'll be confused.

Or at least, could you send an updated version of your patch that
points to the better upstream patch, so that we remember about dropping
your hack when bumping stress-ng?

Thanks!

Thomas
diff mbox

Patch

diff --git a/package/stress-ng/0001-disable-vector-sparc64.patch b/package/stress-ng/0001-disable-vector-sparc64.patch
new file mode 100644
index 0000000..e740b76
--- /dev/null
+++ b/package/stress-ng/0001-disable-vector-sparc64.patch
@@ -0,0 +1,21 @@ 
+Reported upstream:
+https://bugs.launchpad.net/ubuntu/+source/stress-ng/+bug/1581843
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff -Nur stress-ng-0.04.16.orig/stress-ng.h stress-ng-0.04.16/stress-ng.h
+--- stress-ng-0.04.16.orig/stress-ng.h	2015-09-07 11:04:09.000000000 +0200
++++ stress-ng-0.04.16/stress-ng.h	2016-05-14 20:16:10.543917851 +0200
+@@ -457,9 +457,12 @@
+ #define STRESS_X86	1
+ #endif
+ 
++/* triggers gcc ICE */
++#if !defined(__sparc_v9__)
+ #if NEED_GNUC(4,7,0)
+ #define STRESS_VECTOR	1
+ #endif
++#endif
+ 
+ /* NetBSD does not define MAP_ANONYMOUS */
+ #if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)