GNU bug report logs - #24290
ImageMagick optimized for the host processor type on x86_64 and i686

Previous Next

Package: guix;

Reported by: Leo Famulari <leo <at> famulari.name>

Date: Tue, 23 Aug 2016 02:01:01 UTC

Severity: normal

Done: Leo Famulari <leo <at> famulari.name>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24290 in the body.
You can then email your comments to 24290 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Tue, 23 Aug 2016 02:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Leo Famulari <leo <at> famulari.name>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 23 Aug 2016 02:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: bug-guix <at> gnu.org
Subject: ImageMagick optimized for the host processor type on x86_64 and i686
Date: Mon, 22 Aug 2016 22:00:20 -0400
When building ImageMagick on i686 and x86_64, the '-mtune' GCC option
[0] is automatically set to optimize the output for the host processor
[1].

My understand of the GCC documentation is that the binaries will still
run on other processor types, which is why we haven't noticed any
related problems with ImageMagick so far.

But, this definitely makes the ImageMagick package non-reproducible.

Potential solutions:

* Set '-mtune=generic' when building on x86_64 and i686.
* Patch the build system to not try setting this flag at all. I'm not
sure how to achieve this, but I'm sure it's possible.
* Your great idea here :)

These are the two files that contain the string '-mtune' in the
ImageMagick source tree:

http://git.imagemagick.org/repos/ImageMagick/blob/ImageMagick-6/m4/ax_gcc_archflag.m4

I recommend *not* opening this file in your browser. It's very long and
might crash your browser. Try cloning the Git repo instead.
hXXp://git.imagemagick.org/repos/ImageMagick/blob/ImageMagick-6/configure

[0]
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/i386-and-x86-64-Options.html#i386-and-x86-64-Options

[1]
http://hydra.gnu.org/build/1441619/log#line-2626
[...]
checking whether C compiler accepts -mtune=haswell... yes
checking for gcc architecture flag... -mtune=haswell
[...]




Information forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Tue, 23 Aug 2016 02:41:02 GMT) Full text and rfc822 format available.

Message #8 received at 24290 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: 24290 <at> debbugs.gnu.org
Subject: [PATCH 0/1] Potential solution
Date: Mon, 22 Aug 2016 22:40:01 -0400
I found this bug report on a related issue:
https://fedorahosted.org/fesco/ticket/1443

They suggested building with '--without-gcc-arch', and it seems to work
for me. At least, '-mtune' is not mentioned anywhere in the build log.

Leo Famulari (1):
  gnu: imagemagick: Don't build with processor-specific optimizations.

 gnu/packages/imagemagick.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.9.3





Information forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Tue, 23 Aug 2016 02:41:02 GMT) Full text and rfc822 format available.

Message #11 received at 24290 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: 24290 <at> debbugs.gnu.org
Subject: [PATCH 1/1] gnu: imagemagick: Don't build with processor-specific
 optimizations.
Date: Mon, 22 Aug 2016 22:40:02 -0400
* gnu/packages/imagemagick.scm (imagemagick)[arguments]: Pass --without-gcc-arch
to #:configure-flags.
---
 gnu/packages/imagemagick.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index b7054c8..a554b73 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -51,7 +51,7 @@
                "00arcvyhsy9i5gp3b0lhfvs04qwhxpmq0bfsv4ipllinb6mjgxf5"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:configure-flags '("--with-frozenpaths")
+     `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
        #:phases (modify-phases %standard-phases
                   (add-before
                    'build 'pre-build
-- 
2.9.3





Information forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Tue, 23 Aug 2016 04:55:02 GMT) Full text and rfc822 format available.

Message #14 received at 24290 <at> debbugs.gnu.org (full text, mbox):

From: Eric Bavier <ericbavier <at> openmailbox.org>
To: Leo Famulari <leo <at> famulari.name>
Cc: 24290 <at> debbugs.gnu.org
Subject: Re: bug#24290: [PATCH 1/1] gnu: imagemagick: Don't build with
 processor-specific optimizations.
Date: Mon, 22 Aug 2016 23:53:52 -0500
On Mon, 22 Aug 2016 22:40:02 -0400
Leo Famulari <leo <at> famulari.name> wrote:

> * gnu/packages/imagemagick.scm (imagemagick)[arguments]: Pass --without-gcc-arch
> to #:configure-flags.
> ---
>  gnu/packages/imagemagick.scm | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
> index b7054c8..a554b73 100644
> --- a/gnu/packages/imagemagick.scm
> +++ b/gnu/packages/imagemagick.scm
> @@ -51,7 +51,7 @@
>                 "00arcvyhsy9i5gp3b0lhfvs04qwhxpmq0bfsv4ipllinb6mjgxf5"))))
>      (build-system gnu-build-system)
>      (arguments
> -     `(#:configure-flags '("--with-frozenpaths")
> +     `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
>         #:phases (modify-phases %standard-phases
>                    (add-before
>                     'build 'pre-build

This seems like a good solution to me.  We commonly target SSE2 as a
lcd.  Can we make sure that ImageMagick compiles for SSE2 at least?

`~Eric




Information forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Tue, 23 Aug 2016 16:46:01 GMT) Full text and rfc822 format available.

Message #17 received at 24290 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Eric Bavier <ericbavier <at> openmailbox.org>
Cc: 24290 <at> debbugs.gnu.org
Subject: Re: bug#24290: [PATCH 1/1] gnu: imagemagick: Don't build with
 processor-specific optimizations.
Date: Tue, 23 Aug 2016 12:45:21 -0400
[Message part 1 (text/plain, inline)]
On Mon, Aug 22, 2016 at 11:53:52PM -0500, Eric Bavier wrote:
> This seems like a good solution to me.  We commonly target SSE2 as a
> lcd.  Can we make sure that ImageMagick compiles for SSE2 at least?

Sure, but I don't know how to check for that :)

I've attached the log of the configure phase with my patch applied.
[imagemagick-configure-log.xz (application/octet-stream, attachment)]
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#24290; Package guix. (Wed, 24 Aug 2016 20:01:02 GMT) Full text and rfc822 format available.

Message #20 received at 24290 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Eric Bavier <ericbavier <at> openmailbox.org>
Cc: 24290 <at> debbugs.gnu.org
Subject: Re: bug#24290: [PATCH 1/1] gnu: imagemagick: Don't build with
 processor-specific optimizations.
Date: Wed, 24 Aug 2016 16:00:10 -0400
On Mon, Aug 22, 2016 at 11:53:52PM -0500, Eric Bavier wrote:
> On Mon, 22 Aug 2016 22:40:02 -0400
> Leo Famulari <leo <at> famulari.name> wrote:
> 
> > * gnu/packages/imagemagick.scm (imagemagick)[arguments]: Pass --without-gcc-arch
> > to #:configure-flags.
> > ---
> >  gnu/packages/imagemagick.scm | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
> > index b7054c8..a554b73 100644
> > --- a/gnu/packages/imagemagick.scm
> > +++ b/gnu/packages/imagemagick.scm
> > @@ -51,7 +51,7 @@
> >                 "00arcvyhsy9i5gp3b0lhfvs04qwhxpmq0bfsv4ipllinb6mjgxf5"))))
> >      (build-system gnu-build-system)
> >      (arguments
> > -     `(#:configure-flags '("--with-frozenpaths")
> > +     `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
> >         #:phases (modify-phases %standard-phases
> >                    (add-before
> >                     'build 'pre-build
> 
> This seems like a good solution to me.  We commonly target SSE2 as a
> lcd.  Can we make sure that ImageMagick compiles for SSE2 at least?

Mark pointed out on IRC that we don't want to assume support for SSE for
our i686 packages, and that SSE/SSE2 is part of the base specification
for x86_64.

So, I pushed this patch as 00831624, and I'm not going to do anything
related to SSE.




bug closed, send any further explanations to 24290 <at> debbugs.gnu.org and Leo Famulari <leo <at> famulari.name> Request was from Leo Famulari <leo <at> famulari.name> to control <at> debbugs.gnu.org. (Sun, 03 Feb 2019 22:37:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 04 Mar 2019 12:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 165 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.