The following reply was made to PR toolchain/45673; it has been noted by GNATS.
From: David Laight <david%l8s.co.uk@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: toolchain/45673
Date: Sun, 30 Dec 2012 15:42:27 +0000
On Sun, Dec 30, 2012 at 03:05:03PM +0000, diro%nixsyspaus.org@localhost wrote:
> The following reply was made to PR toolchain/45673; it has been noted by
> GNATS.
>
> From: diro%nixsyspaus.org@localhost
> To: gnats-bugs%NetBSD.org@localhost
> Cc:
> Subject: Re: toolchain/45673
> Date: Sun, 30 Dec 2012 10:02:45 -0500
>
> I'm not sure if this is the same issue; however, on my:
>
> % dmesg | grep cpu0
> cpu0 at mainbus0 apid 0: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz, id
> 0x206a7
>
> % uname -rsm
> NetBSD 6.0 amd64
>
> compiling pkgsrc packages with -march=native will make a lot of packages
> fail
> either during build or on execution. The error message is "Illegal
> instruction" and the programme dumps core.
This is a bug in gcc - or, at least, in the way gcc is configured.
-march=native ought to constrain itself to what the OS supports,
not what the cpu supports.
In particular support for the 256bit AVX (etc) instructions requires
support within the kernel (to save the extra registers over process
switches) which the NetBSD kernel doesn't have.
Adding the process switch code it probably fairly easy.
(Although how general to make it is another issue)
But the mcontext structure (used by gdb and some attempts at user-
space threading) is likely to have larger side effects.
David
--
David Laight: david%l8s.co.uk@localhost