NetBSD Problem Report #45673

From www@NetBSD.org  Wed Nov 30 20:53:51 2011
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id B00BD63DA28
	for <gnats-bugs@gnats.NetBSD.org>; Wed, 30 Nov 2011 20:53:50 +0000 (UTC)
Message-Id: <20111130205350.153FF63D8FB@www.NetBSD.org>
Date: Wed, 30 Nov 2011 20:53:50 +0000 (UTC)
From: kuehro@gmx.de
Reply-To: kuehro@gmx.de
To: gnats-bugs@NetBSD.org
Subject: gcc on i386 current generates bad code for assembler code in lock.h
X-Send-Pr-Version: www-1.0

>Number:         45673
>Category:       port-i386
>Synopsis:       gcc on i386 current generates bad code for assembler code in lock.h
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-i386-maintainer
>State:          closed
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 30 20:55:00 +0000 2011
>Closed-Date:    Fri Nov 29 12:22:32 +0000 2013
>Last-Modified:  Fri Nov 29 12:22:32 +0000 2013
>Originator:     Kai-Uwe Eckhardt
>Release:        5.99.57
>Organization:
>Environment:
GENERIC i386 from releng 20111127
gcc version 4.5.3 (NetBSD nb2 20110806)
>Description:
Building lang/gcc46 oder gcc44 fails with:

/usr/include/x86/lock.h:108: Error: bad register name '%sil'


>How-To-Repeat:
Build lang/gcc46 on i386 current.
>Fix:
The reason seems to be gcc bug 10153. The error with pkgsrc can be fixed
by changing r to q in line 108 of /usr/include/x86/lock.h:

_asm volatile ("xchgb %0,(%2)" : 
	    "=r" (val)
	    :"0" (val), "r" (lockp));

This restricts allowable registers to a,b,c or d. Of course it would be
much better to fix gcc somehow. 





>Release-Note:

>Audit-Trail:
From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Sun, 11 Dec 2011 22:54:04 +0100

 --========GMX180001323640444137891
 Content-Type: text/plain; charset="utf-8"
 Content-Transfer-Encoding: 8bit

 The attached tar file contains the miscompiled file of the gcc build and
 the necessary include files. Try to execute 'sh locktest.sh' to show the
 bug in current's gcc or x86/lock.h 

 Kai-Uwe

 -- 
 -- 



 --========GMX180001323640444137891
 Content-Type: application/x-gzip; name="lockfail.tar.gz"
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename="lockfail.tar.gz"

 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
 --========GMX180001323640444137891--

From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for 
 assembler code in lock.h
Date: Sun, 11 Mar 2012 10:06:54 +0100

 Hi,

 it looks like a problem in the toolchain. The gcc in 6.0_BETA and current
 i386 is built with --with-march=i486 --with-tune=nocona. Nocona has the
 64 bit registers available and this leads to wrong code. It also
 fails on amd64 using -m32 where -mtune=nocana is default as well. 
 Running the test case with -m32 -march=i486 -mtune=pentiumpro works fine.
 I propose fixing x86/lock.h on i386 and amd64 by using q for the register
 usage directive. Using nocona as default tuning in i386 should be 
 reconsidered. I suggest pentiumpro which is a good default value for
 all processors in my experience.   

 Kai-Uwe
 -- 
 -- 


From: Joerg Sonnenberger <joerg@homeworld.netbsd.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Sun, 11 Mar 2012 23:35:01 +0000

 On Wed, Nov 30, 2011 at 08:55:00PM +0000, kuehro@gmx.de wrote:
 > The reason seems to be gcc bug 10153. The error with pkgsrc can be fixed
 > by changing r to q in line 108 of /usr/include/x86/lock.h:
 > 
 > _asm volatile ("xchgb %0,(%2)" : 
 > 	    "=r" (val)
 > 	    :"0" (val), "r" (lockp));
 > 	
 > This restricts allowable registers to a,b,c or d. Of course it would be
 > much better to fix gcc somehow. 

 That restricts it more than necessary, doesn't it? I think the correct
 constraint here "=qQ", since both l and h registers are allowed.

 Joerg

From: Matthew Mondor <mm_lists@pulsar-zone.net>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Mon, 12 Mar 2012 01:34:53 -0400

 I am also encountering this problem in a netbsd-6/amd64 build attempt
 today.  Also, pkg/45814 seems to be related.

 Thanks,
 -- 
 Matt

From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: gnats-bugs@NetBSD.org, netbsd-bugs@netbsd.org, gnats-admin@netbsd.org,
 toolchain-manager@netbsd.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Mon, 12 Mar 2012 17:59:27 +0100

 >  That restricts it more than necessary, doesn't it? I think the correct
 >  constraint here "=qQ", since both l and h registers are allowed.
 >  
 >  Joerg


 Yes, you are right and I tested it successfully on amd64 with -m32
 -march=i486  -mtune=nocona just to be sure. This is a bug of gcc in
 my opinion, so can't be sure without trying ;-) Don't have a i386 system
 handy to test it there before tomorrow.

 Kai-Uwe

 -- 
 -- 


From: Alan Barrett <apb@cequrux.com>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Mon, 12 Mar 2012 15:17:36 -0600

 On Sun, 11 Mar 2012, Kai-Uwe Eckhardt wrote:
 > it looks like a problem in the toolchain. The gcc in 
 > 6.0_BETA and current i386 is built with --with-march=i486 
 > --with-tune=nocona. Nocona has the 64 bit registers available 
 > and this leads to wrong code.

 According to my reading of "man gcc", -march is supposed 
 to control the available set of CPU features, registers, 
 instructions, and the like, while -mtune is supposed to affect 
 the cost of using the available CPU features (while not affecting 
 the set of available features).  If a feature is not present in 
 the CPU type specified with "-march", but is present in the CPU 
 type specified with "-mtune", then I believe that GCC should NOT 
 attempt to use that feature.

 If GCC is invoked with "-march=i486 -mtune=nocona" and is using 
 features that are present in the nocona CPU but not present in the 
 i486 CPU, then I believe that indicates a GCC bug.

 --apb (Alan Barrett)

From: David Laight <david@l8s.co.uk>
To: gnats-bugs@NetBSD.org
Cc: toolchain-manager@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, kuehro@gmx.de
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for assembler code in lock.h
Date: Mon, 12 Mar 2012 21:54:17 +0000

 On Mon, Mar 12, 2012 at 09:20:04PM +0000, Alan Barrett wrote:
 > The following reply was made to PR toolchain/45673; it has been noted by GNATS.
 > 
 > From: Alan Barrett <apb@cequrux.com>
 > To: gnats-bugs@NetBSD.org
 > Cc: 
 > Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 >  assembler code in lock.h
 > Date: Mon, 12 Mar 2012 15:17:36 -0600
 > 
 >  On Sun, 11 Mar 2012, Kai-Uwe Eckhardt wrote:
 >  > it looks like a problem in the toolchain. The gcc in 
 >  > 6.0_BETA and current i386 is built with --with-march=i486 
 >  > --with-tune=nocona. Nocona has the 64 bit registers available 
 >  > and this leads to wrong code.
 >  
 >  According to my reading of "man gcc", -march is supposed 
 >  to control the available set of CPU features, registers, 
 >  instructions, and the like, while -mtune is supposed to affect 
 >  the cost of using the available CPU features (while not affecting 
 >  the set of available features).  If a feature is not present in 
 >  the CPU type specified with "-march", but is present in the CPU 
 >  type specified with "-mtune", then I believe that GCC should NOT 
 >  attempt to use that feature.
 >  
 >  If GCC is invoked with "-march=i486 -mtune=nocona" and is using 
 >  features that are present in the nocona CPU but not present in the 
 >  i486 CPU, then I believe that indicates a GCC bug.

 Specifying the arch or tune shouldn't be affecting the available
 set of registers. What it probably does is just change the
 instruction scheduling enough so that the code compiles.

 The 64 bit registers are never available in 32bit mode.
 (Well gcc could be configured to generate 32bit code within
 the 64bit instruction set - but that is something different.)

 In spite of an old gcc bug (from 2003) which suggests using a different
 constraint (=qQ instead or =r) it shouldn't really be needed.
 gcc has a pile of architecture specific defines that tell it
 the names of all the registers, which registers use the same physical
 space (think MMX and SSE) and which validy share the same contents
 but with different data sizes, and some special defs for x86 %ah.
 These are all based on explicit lists, not pattern rules.
 So the definitions incorrectly allow %sil, %dil and %bpl when
 compiling with -m32.
 Possibly the same 'bug' would allow %r8-%r15 be used for 8, 16
 or 32bit quantities (or that code would show the fix).

 Probably a simple matter of reading and understanding the way -m32
 is done.

 	David

 -- 
 David Laight: david@l8s.co.uk

From: matthew green <mrg@eterna.com.au>
To: gnats-bugs@NetBSD.org
Cc: toolchain-manager@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, kuehro@gmx.de
Subject: re: toolchain/45673: gcc on i386 current generates bad code for assembler code in lock.h
Date: Tue, 13 Mar 2012 09:49:12 +1100

 >  On Sun, 11 Mar 2012, Kai-Uwe Eckhardt wrote:
 >  > it looks like a problem in the toolchain. The gcc in 
 >  > 6.0_BETA and current i386 is built with --with-march=i486 
 >  > --with-tune=nocona. Nocona has the 64 bit registers available 
 >  > and this leads to wrong code.
 >  
 >  According to my reading of "man gcc", -march is supposed 
 >  to control the available set of CPU features, registers, 
 >  instructions, and the like, while -mtune is supposed to affect 
 >  the cost of using the available CPU features (while not affecting 
 >  the set of available features).  If a feature is not present in 
 >  the CPU type specified with "-march", but is present in the CPU 
 >  type specified with "-mtune", then I believe that GCC should NOT 
 >  attempt to use that feature.
 >  
 >  If GCC is invoked with "-march=i486 -mtune=nocona" and is using 
 >  features that are present in the nocona CPU but not present in the 
 >  i486 CPU, then I believe that indicates a GCC bug.

 i had a read through the i386 gcc code and i couldn't see anyway
 that -mtune=nocona would change the available instructions.  i
 agree that this would be a bug if it does so.

 fortunately, the real bug seems to be the register constraints.


 .mrg.

From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: gnats-bugs@NetBSD.org, netbsd-bugs@netbsd.org, gnats-admin@netbsd.org,
 toolchain-manager@netbsd.org
Cc: 
Subject: Re: re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Tue, 13 Mar 2012 16:44:45 +0100


 >  fortunately, the real bug seems to be the register constraints.

 I have tested building lang/gcc46 with qQ in lock.h on 6.0_BETA i386
 as suggested by Jörg Sonnenberger and it built fine, with no regressions
 in the gcc testsuite compared to using q alone. 

 Kai-Uwe
 -- 
 -- 


From: David Laight <david@l8s.co.uk>
To: Kai-Uwe Eckhardt <kuehro@gmx.de>
Cc: gnats-bugs@NetBSD.org
Subject: Re: re: toolchain/45673: gcc on i386 current generates bad code for assembler code in lock.h
Date: Tue, 13 Mar 2012 19:03:31 +0000

 On Tue, Mar 13, 2012 at 04:44:45PM +0100, Kai-Uwe Eckhardt wrote:
 >   
 > >  fortunately, the real bug seems to be the register constraints.
 > 
 > I have tested building lang/gcc46 with qQ in lock.h on 6.0_BETA i386
 > as suggested by J?rg Sonnenberger and it built fine, with no regressions
 > in the gcc testsuite compared to using q alone. 

 That just avoid the bug - it really shouldn't happen.

 	David

 -- 
 David Laight: david@l8s.co.uk

From: Matthew Mondor <mm_lists@pulsar-zone.net>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Tue, 13 Mar 2012 20:30:02 -0400

 On Mon, 12 Mar 2012 05:35:02 +0000 (UTC)
 Matthew Mondor <mm_lists@pulsar-zone.net> wrote:

 >  I am also encountering this problem in a netbsd-6/amd64 build attempt
 >  today.  Also, pkg/45814 seems to be related.

 Just for more information, to trigger this bug when building
 netbsd-6/amd64, I have to add DBG=-g to /etc/mk.conf
 -- 
 Matt

From: matthew green <mrg@eterna.com.au>
To: gnats-bugs@NetBSD.org
Cc: toolchain-manager@netbsd.org, gnats-admin@netbsd.org,
    netbsd-bugs@netbsd.org, kuehro@gmx.de
Subject: re: toolchain/45673: gcc on i386 current generates bad code for assembler code in lock.h
Date: Wed, 14 Mar 2012 11:50:50 +1100

 > From: Matthew Mondor <mm_lists@pulsar-zone.net>
 > To: gnats-bugs@NetBSD.org
 > Cc: 
 > Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 >  assembler code in lock.h
 > Date: Tue, 13 Mar 2012 20:30:02 -0400
 > 
 >  On Mon, 12 Mar 2012 05:35:02 +0000 (UTC)
 >  Matthew Mondor <mm_lists@pulsar-zone.net> wrote:
 >  
 >  >  I am also encountering this problem in a netbsd-6/amd64 build attempt
 >  >  today.  Also, pkg/45814 seems to be related.
 >  
 >  Just for more information, to trigger this bug when building
 >  netbsd-6/amd64, I have to add DBG=-g to /etc/mk.conf

 that sounds like a bad idea.  you're missing -O2 now, which may be
 why gcc is getting the asm wrong...

 i use DBG=-g -O2.


 .mrg.

From: Matthew Mondor <mm_lists@pulsar-zone.net>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Tue, 13 Mar 2012 22:11:08 -0400

 On Wed, 14 Mar 2012 11:50:50 +1100
 matthew green <mrg@eterna.com.au> wrote:

 > 
 > > From: Matthew Mondor <mm_lists@pulsar-zone.net>
 > > To: gnats-bugs@NetBSD.org
 > > Cc: 
 > > Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 > >  assembler code in lock.h
 > > Date: Tue, 13 Mar 2012 20:30:02 -0400
 > > 
 > >  On Mon, 12 Mar 2012 05:35:02 +0000 (UTC)
 > >  Matthew Mondor <mm_lists@pulsar-zone.net> wrote:
 > >  
 > >  >  I am also encountering this problem in a netbsd-6/amd64 build attempt
 > >  >  today.  Also, pkg/45814 seems to be related.
 > >  
 > >  Just for more information, to trigger this bug when building
 > >  netbsd-6/amd64, I have to add DBG=-g to /etc/mk.conf
 > 
 > that sounds like a bad idea.  you're missing -O2 now, which may be
 > why gcc is getting the asm wrong...
 > 
 > i use DBG=-g -O2.

 Indeed the build succeded with -O2.  I had assumed that -g without -O2
 would have used -O0 and that it could not be problematic, but even be
 more useful for debugging.

 Thanks for the tip,
 -- 
 Matt

From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: David Laight <david@l8s.co.uk>
Cc: gnats-bugs@NetBSD.org
Subject: Re: re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Wed, 14 Mar 2012 11:31:47 +0100

 > That just avoid the bug - it really shouldn't happen.
 > 

 Yes, but at least it doesn't silently create bad code without warning.
 This is along standing issue on gcc, but it is only triggered in rare
 cases. Fixing it seems to require considerable changes in gcc, so it
 won't change soon. We just have to be aware that our base compiler has
 problems with this and we know how to fix it by using more conservative
 register hints or compiler flags. 

 Kai-Uwe


 -- 
 -- 


From: "Kai-Uwe Eckhardt" <kuehro@gmx.de>
To: gnats-bugs@NetBSD.org, netbsd-bugs@netbsd.org, gnats-admin@netbsd.org,
 toolchain-manager@netbsd.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Wed, 14 Mar 2012 11:35:39 +0100


 >  On Mon, 12 Mar 2012 05:35:02 +0000 (UTC)
 >  Matthew Mondor <mm_lists@pulsar-zone.net> wrote:
 >  
 >  >  I am also encountering this problem in a netbsd-6/amd64 build attempt
 >  >  today.  Also, pkg/45814 seems to be related.
 >  
 >  Just for more information, to trigger this bug when building
 >  netbsd-6/amd64, I have to add DBG=-g to /etc/mk.conf
 >  -- 
 >  Matt

 The problem with lang/gcc46 also appeared while using -g :


 gcc -c -g -DHAVE_CONFIG_H -fkeep-inline-functions -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic -fpic -I. physmem.c

 Kai-Uwe
 -- 
 -- 


From: Alan Barrett <apb@cequrux.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: toolchain/45673: gcc on i386 current generates bad code for
 assembler code in lock.h
Date: Thu, 11 Oct 2012 11:04:41 +0200

 Building lang/gcc47 from pkgsrc, on a NetBSD/i386 -current host, fails
 as described in this PR, with:

 /usr/include/x86/lock.h:108: Error: bad register name `%sil'

 The problematic source file is gcc-4.7.0/libiberty/physmem.c, 
 which includes <sys/sysctl.h> which (through several levels of 
 includes) eventually includes <x86/lock.h>.  x86/lock.h contains 
 this code:

 static __inline int
 __cpu_simple_lock_try(__cpu_simple_lock_t *lockp)
 {
          uint8_t val;

          val = __SIMPLELOCK_LOCKED;
          __asm volatile ("xchgb %0,(%2)" :
              "=r" (val)
              :"0" (val), "r" (lockp));
          __insn_barrier();
          return val == __SIMPLELOCK_UNLOCKED;
 }

 The physmem.s file that I get from invoking the compiler with the
 "-save-temps" flag, and without any "-O" flags, includes this code:

 #APP
 # 108 "/usr/include/x86/lock.h" 1
          xchgb %sil,(%eax)
 # 0 "" 2
 #NO_APP

 The assembler is correctly complaining that %sil is not a valid 
 register name.

 If I change <x86/lock.h> to have "=qQ" or "=q" instead of "=r" in 
 the register constraint for the (val) output, then gcc chooses to 
 use the %dl register, not %sil, and compilation is successful.

 With "-O", the entire function is optimised away (because it's not
 called).

 There may be a gcc bug, as earlier commenters on thei PAR said, 
 because %sil is not a valid register for i386.  However, changing 
 the register constraint in <x86/lock.h> from "=r" to "=q" or "=qQ" 
 seems to me to be a simple, safe, and reasonable solution to the 
 problem without needing to modify gcc.

 I have performed a complete build of NetBSD-current/i386 with 
 "=qQ" in the relevant place in src/sys/arch/x86/include/lock.h, 
 and it passes all tests.  Also, the output from "objdump -d" is 
 identical before and after this change, for both the i386 GENERIC 
 and MONOLITHIC kernels.

 --apb (Alan Barrett)

From: "Alan Barrett" <apb@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45673 CVS commit: src/sys/arch/x86/include
Date: Thu, 11 Oct 2012 11:12:22 +0000

 Module Name:	src
 Committed By:	apb
 Date:		Thu Oct 11 11:12:22 UTC 2012

 Modified Files:
 	src/sys/arch/x86/include: lock.h

 Log Message:
 Change "=r" to "=qQ" in a register constraint in an asm statement
 for a register that is used with the "xchgb" instruction in the
 definition of __cpu_simple_lock_try().  This fixes PR 45673, or at
 least works around the gcc bug that might be behind PR 45673.

 The output from "objdump -d" before and after this change is
 identical, for the amd64 GENERIC kernel, the i386 GENERIC kernel,
 and the i386 MONOLITHIC kernel.


 To generate a diff of this commit:
 cvs rdiff -u -r1.25 -r1.26 src/sys/arch/x86/include/lock.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Jeff Rizzo" <riz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45673 CVS commit: [netbsd-6] src/sys/arch/x86/include
Date: Wed, 17 Oct 2012 22:39:27 +0000

 Module Name:	src
 Committed By:	riz
 Date:		Wed Oct 17 22:39:26 UTC 2012

 Modified Files:
 	src/sys/arch/x86/include [netbsd-6]: lock.h

 Log Message:
 Pull up following revision(s) (requested by apb in ticket #606):
 	sys/arch/x86/include/lock.h: revision 1.26
 Change "=r" to "=qQ" in a register constraint in an asm statement
 for a register that is used with the "xchgb" instruction in the
 definition of __cpu_simple_lock_try().  This fixes PR 45673, or at
 least works around the gcc bug that might be behind PR 45673.
 The output from "objdump -d" before and after this change is
 identical, for the amd64 GENERIC kernel, the i386 GENERIC kernel,
 and the i386 MONOLITHIC kernel.


 To generate a diff of this commit:
 cvs rdiff -u -r1.25 -r1.25.20.1 src/sys/arch/x86/include/lock.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Jeff Rizzo" <riz@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/45673 CVS commit: [netbsd-6-0] src/sys/arch/x86/include
Date: Fri, 19 Oct 2012 17:33:38 +0000

 Module Name:	src
 Committed By:	riz
 Date:		Fri Oct 19 17:33:37 UTC 2012

 Modified Files:
 	src/sys/arch/x86/include [netbsd-6-0]: lock.h

 Log Message:
 Pull up following revision(s) (requested by apb in ticket #606):
 	sys/arch/x86/include/lock.h: revision 1.26
 Change "=r" to "=qQ" in a register constraint in an asm statement
 for a register that is used with the "xchgb" instruction in the
 definition of __cpu_simple_lock_try().  This fixes PR 45673, or at
 least works around the gcc bug that might be behind PR 45673.
 The output from "objdump -d" before and after this change is
 identical, for the amd64 GENERIC kernel, the i386 GENERIC kernel,
 and the i386 MONOLITHIC kernel.


 To generate a diff of this commit:
 cvs rdiff -u -r1.25 -r1.25.26.1 src/sys/arch/x86/include/lock.h

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: diro@nixsyspaus.org
To: gnats-bugs@NetBSD.org
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.

From: David Laight <david@l8s.co.uk>
To: gnats-bugs@NetBSD.org
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 wrote:
 > The following reply was made to PR toolchain/45673; it has been noted by GNATS.
 > 
 > From: diro@nixsyspaus.org
 > To: gnats-bugs@NetBSD.org
 > 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

From: David Laight <david@l8s.co.uk>
To: gnats-bugs@NetBSD.org
Cc: toolchain-manager@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, kuehro@gmx.de
Subject: Re: toolchain/45673
Date: Sun, 30 Dec 2012 16:46:46 +0000

 On Sun, Dec 30, 2012 at 03:05:03PM +0000, diro@nixsyspaus.org wrote:
 >  
 >  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.

 That is a different gcc bug - see toolchain/47248

 	David

 -- 
 David Laight: david@l8s.co.uk

Responsible-Changed-From-To: toolchain-manager->port-i386-maintainer
Responsible-Changed-By: mrg@NetBSD.org
Responsible-Changed-When: Fri, 29 Nov 2013 12:22:32 +0000
Responsible-Changed-Why:


State-Changed-From-To: open->closed
State-Changed-By: mrg@NetBSD.org
State-Changed-When: Fri, 29 Nov 2013 12:22:32 +0000
State-Changed-Why:
all pulled up.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.