diff mbox

Fix assembler arguments for -m16

Message ID 1467814729-3789-1-git-send-email-roger.pau@citrix.com
State New
Headers show

Commit Message

Roger Pau Monné July 6, 2016, 2:18 p.m. UTC
At the moment the -m16 option only passes the "--32" parameter to the
assembler on glibc OSes, while on other OSes the assembler is called without
any specific flag. This is wrong and causes the assembler to fail. Fix it
by adding support for the -m16 option to x86-64.h.

2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>

	* x86-64.h: append --32 to the assembler options when -m16 is used
	even on non-glibc OSes.

---
Cc: hjl@gcc.gnu.org
Cc: gerald@FreeBSD.org
---
This should be backported to all stable branches up to 4.9 (when -m16 was
introduced).

Please keep me on Cc since I'm not subscribed to the list, thanks.
---
 gcc/config/i386/x86-64.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Roger Pau Monné July 20, 2016, 4:31 p.m. UTC | #1
On Wed, Jul 06, 2016 at 04:18:49PM +0200, Roger Pau Monne wrote:
> At the moment the -m16 option only passes the "--32" parameter to the
> assembler on glibc OSes, while on other OSes the assembler is called without
> any specific flag. This is wrong and causes the assembler to fail. Fix it
> by adding support for the -m16 option to x86-64.h.
> 
> 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
> 
> 	* x86-64.h: append --32 to the assembler options when -m16 is used
> 	even on non-glibc OSes.
> 
> ---
> Cc: hjl@gcc.gnu.org
> Cc: gerald@FreeBSD.org
> ---
> This should be backported to all stable branches up to 4.9 (when -m16 was
> introduced).
> 
> Please keep me on Cc since I'm not subscribed to the list, thanks.

Ping?

Roger.
Roger Pau Monné Aug. 8, 2016, 3:28 p.m. UTC | #2
On Wed, Jul 20, 2016 at 06:31:57PM +0200, Roger Pau Monne wrote:
> On Wed, Jul 06, 2016 at 04:18:49PM +0200, Roger Pau Monne wrote:
> > At the moment the -m16 option only passes the "--32" parameter to the
> > assembler on glibc OSes, while on other OSes the assembler is called without
> > any specific flag. This is wrong and causes the assembler to fail. Fix it
> > by adding support for the -m16 option to x86-64.h.
> > 
> > 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
> > 
> > 	* x86-64.h: append --32 to the assembler options when -m16 is used
> > 	even on non-glibc OSes.
> > 
> > ---
> > Cc: hjl@gcc.gnu.org
> > Cc: gerald@FreeBSD.org
> > ---
> > This should be backported to all stable branches up to 4.9 (when -m16 was
> > introduced).
> > 
> > Please keep me on Cc since I'm not subscribed to the list, thanks.
> 
> Ping?

Ping x2. Is there anything I'm missing in order to get this reviewed?

Roger.
Roger Pau Monné Aug. 25, 2016, 9:36 a.m. UTC | #3
On Mon, Aug 08, 2016 at 05:28:29PM +0200, Roger Pau Monne wrote:
> On Wed, Jul 20, 2016 at 06:31:57PM +0200, Roger Pau Monne wrote:
> > On Wed, Jul 06, 2016 at 04:18:49PM +0200, Roger Pau Monne wrote:
> > > At the moment the -m16 option only passes the "--32" parameter to the
> > > assembler on glibc OSes, while on other OSes the assembler is called without
> > > any specific flag. This is wrong and causes the assembler to fail. Fix it
> > > by adding support for the -m16 option to x86-64.h.
> > > 
> > > 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
> > > 
> > > 	* x86-64.h: append --32 to the assembler options when -m16 is used
> > > 	even on non-glibc OSes.
> > > 
> > > ---
> > > Cc: hjl@gcc.gnu.org
> > > Cc: gerald@FreeBSD.org
> > > ---
> > > This should be backported to all stable branches up to 4.9 (when -m16 was
> > > introduced).
> > > 
> > > Please keep me on Cc since I'm not subscribed to the list, thanks.
> > 
> > Ping?
> 
> Ping x2. Is there anything I'm missing in order to get this reviewed?
> 

And yet another ping (x3).

Thanks, Roger.
Gerald Pfeifer Nov. 6, 2016, 4:48 p.m. UTC | #4
It appears this got stuck.

Uros, is this okay?  I can handle the commit if you approve.

Gerald

On Wed, 6 Jul 2016, Roger Pau Monne wrote:
> At the moment the -m16 option only passes the "--32" parameter to the
> assembler on glibc OSes, while on other OSes the assembler is called without
> any specific flag. This is wrong and causes the assembler to fail. Fix it
> by adding support for the -m16 option to x86-64.h.
> 
> 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
> 
> 	* x86-64.h: append --32 to the assembler options when -m16 is used
> 	even on non-glibc OSes.
> 
> ---
> Cc: hjl@gcc.gnu.org
> Cc: gerald@FreeBSD.org
> ---
> This should be backported to all stable branches up to 4.9 (when -m16 was
> introduced).
> 
> Please keep me on Cc since I'm not subscribed to the list, thanks.
> ---
>  gcc/config/i386/x86-64.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
> index b0bf835..9e6c6eb 100644
> --- a/gcc/config/i386/x86-64.h
> +++ b/gcc/config/i386/x86-64.h
> @@ -49,7 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>  #define WCHAR_TYPE_SIZE 32
>  
>  #undef ASM_SPEC
> -#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
> +#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
>  
>  #undef ASM_OUTPUT_ALIGNED_BSS
>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
Uros Bizjak Nov. 6, 2016, 8:38 p.m. UTC | #5
On Sun, Nov 6, 2016 at 5:48 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
> It appears this got stuck.
>
> Uros, is this okay?  I can handle the commit if you approve.

Looks good to me, so OK if tested on non-glibc system.

Thanks,
Uros.

> Gerald
>
> On Wed, 6 Jul 2016, Roger Pau Monne wrote:
>> At the moment the -m16 option only passes the "--32" parameter to the
>> assembler on glibc OSes, while on other OSes the assembler is called without
>> any specific flag. This is wrong and causes the assembler to fail. Fix it
>> by adding support for the -m16 option to x86-64.h.
>>
>> 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
>>
>>       * x86-64.h: append --32 to the assembler options when -m16 is used
>>       even on non-glibc OSes.
>>
>> ---
>> Cc: hjl@gcc.gnu.org
>> Cc: gerald@FreeBSD.org
>> ---
>> This should be backported to all stable branches up to 4.9 (when -m16 was
>> introduced).
>>
>> Please keep me on Cc since I'm not subscribed to the list, thanks.
>> ---
>>  gcc/config/i386/x86-64.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
>> index b0bf835..9e6c6eb 100644
>> --- a/gcc/config/i386/x86-64.h
>> +++ b/gcc/config/i386/x86-64.h
>> @@ -49,7 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>>  #define WCHAR_TYPE_SIZE 32
>>
>>  #undef ASM_SPEC
>> -#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
>> +#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
>>
>>  #undef ASM_OUTPUT_ALIGNED_BSS
>>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
Andreas Tobler Nov. 7, 2016, 5:25 a.m. UTC | #6
On 06.11.16 21:38, Uros Bizjak wrote:
> On Sun, Nov 6, 2016 at 5:48 PM, Gerald Pfeifer <gerald@pfeifer.com> wrote:
>> It appears this got stuck.
>>
>> Uros, is this okay?  I can handle the commit if you approve.
>
> Looks good to me, so OK if tested on non-glibc system.


Results w/o patch:
https://gcc.gnu.org/ml/gcc-testresults/2016-11/msg00627.html

Results with patch:
https://gcc.gnu.org/ml/gcc-testresults/2016-11/msg00672.html

Andreas
>
> Thanks,
> Uros.
>
>> Gerald
>>
>> On Wed, 6 Jul 2016, Roger Pau Monne wrote:
>>> At the moment the -m16 option only passes the "--32" parameter to the
>>> assembler on glibc OSes, while on other OSes the assembler is called without
>>> any specific flag. This is wrong and causes the assembler to fail. Fix it
>>> by adding support for the -m16 option to x86-64.h.
>>>
>>> 2016-07-06  Roger Pau Monné  <roger.pau@citrix.com>
>>>
>>>       * x86-64.h: append --32 to the assembler options when -m16 is used
>>>       even on non-glibc OSes.
>>>
>>> ---
>>> Cc: hjl@gcc.gnu.org
>>> Cc: gerald@FreeBSD.org
>>> ---
>>> This should be backported to all stable branches up to 4.9 (when -m16 was
>>> introduced).
>>>
>>> Please keep me on Cc since I'm not subscribed to the list, thanks.
>>> ---
>>>  gcc/config/i386/x86-64.h | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
>>> index b0bf835..9e6c6eb 100644
>>> --- a/gcc/config/i386/x86-64.h
>>> +++ b/gcc/config/i386/x86-64.h
>>> @@ -49,7 +49,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
>>>  #define WCHAR_TYPE_SIZE 32
>>>
>>>  #undef ASM_SPEC
>>> -#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
>>> +#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
>>>
>>>  #undef ASM_OUTPUT_ALIGNED_BSS
>>>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
>
Gerald Pfeifer Dec. 11, 2016, 5:48 p.m. UTC | #7
On Mon, 7 Nov 2016, Andreas Tobler wrote:
> Results w/o patch:
> https://gcc.gnu.org/ml/gcc-testresults/2016-11/msg00627.html
> 
> Results with patch:
> https://gcc.gnu.org/ml/gcc-testresults/2016-11/msg00672.html

Thanks, Andreas, quite useful.

For reference, the reason I did not go ahead with the patch right
away, but did some more testing are those non-deterministic (at
least on FreeBSD) tests we've got:

In your testing, the patch "changed" the following:

  -FAIL: c-c++-common/cilk-plus/CK/nested_cilk_for.c  -O2 -std=c99  execution test
  +FAIL: c-c++-common/cilk-plus/CK/fib.c  -g  execution test
  -FAIL: 22_locale/locale/cons/12658_thread-1.cc execution test

The first two I've never seen, 22_locale/locale/cons/12658_thread-1.cc 
actually went the other direction (from PASS to FAIL) in my original 
tests.

So, at least on FreeBSD 22_locale/locale/cons/12658_thread-1.cc pretty
much is useful and pretty much random.

Gerald
diff mbox

Patch

diff --git a/gcc/config/i386/x86-64.h b/gcc/config/i386/x86-64.h
index b0bf835..9e6c6eb 100644
--- a/gcc/config/i386/x86-64.h
+++ b/gcc/config/i386/x86-64.h
@@ -49,7 +49,7 @@  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 #define WCHAR_TYPE_SIZE 32
 
 #undef ASM_SPEC
-#define ASM_SPEC "%{m32:--32} %{m64:--64} %{mx32:--x32}"
+#define ASM_SPEC "%{m16|m32:--32} %{m64:--64} %{mx32:--x32}"
 
 #undef ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \