public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: recent arm.h change
@ 2000-03-29 11:25 Nick Clifton
  2000-03-29 11:41 ` Richard Earnshaw
  2000-03-29 11:41 ` Philip Blundell
  0 siblings, 2 replies; 8+ messages in thread
From: Nick Clifton @ 2000-03-29 11:25 UTC (permalink / raw)
  To: rearnsha; +Cc: gcc

Hi Richard,

: Your recent change on the branch
: 
: 2000-03-24  Nick Clifton  <nickc@cygnus.com>
: 
:         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
:         already defined.
:         (ASM_SPEC): Define if not already defined.
:         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
: 
: breaks builds on a.out assemblers.  These assemblers don't support all the 
: flags that this defines, even in the latest builds.  The defines need to 
: be moved to the elf (and maybe coff) SUBTARGET_EXTRA_ASM_SPEC defines.  We 
: also need to check that there is at least one official release of GAS that 
: supports these before we can add them at all.
: 
: I don't believe it is acceptable for gcc to require a development version 
: of gas be used.

I agree with that, but I still ike the idea of simplifying the mess of
header arm files by unifying the definitionsof ASM_SPEC.  Wouldn't it
just be simpler to suppress the definition of ASM_SPEC if the host
asssembler is an a.out assembler ?  ie something like:


  #if !defined ASM_SPEC && !defined AOUT
  #define ASM_SPEC "\
  %{mbig-endian:-EB} \
  %{mcpu=*:-m%*} \
  %{march=*:-m%*} \
  %{mapcs-*:-mapcs-%*} \
  %{matpcs:-matpcs} \
  %{mapcs-float:-mfloat} \
  %{msoft-float:-mno-fpu} \
  %{mthumb-interwork:-mthumb-interwork} \
  " SUBTARGET_EXTRA_ASM_SPEC
  #endif

[I do not know which cpp symbol will be defined by a.out hosts, so I
guessed in the example above].

Cheers
	Nick

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
  2000-03-29 11:25 recent arm.h change Nick Clifton
@ 2000-03-29 11:41 ` Richard Earnshaw
  2000-03-29 11:41 ` Philip Blundell
  1 sibling, 0 replies; 8+ messages in thread
From: Richard Earnshaw @ 2000-03-29 11:41 UTC (permalink / raw)
  To: Nick Clifton; +Cc: rearnsha

> Hi Richard,
> 
> : Your recent change on the branch
> : 
> : 2000-03-24  Nick Clifton  <nickc@cygnus.com>
> : 
> :         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
> :         already defined.
> :         (ASM_SPEC): Define if not already defined.
> :         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
> : 
> : breaks builds on a.out assemblers.  These assemblers don't support all the 
> : flags that this defines, even in the latest builds.  The defines need to 
> : be moved to the elf (and maybe coff) SUBTARGET_EXTRA_ASM_SPEC defines.  We 
> : also need to check that there is at least one official release of GAS that 
> : supports these before we can add them at all.
> : 
> : I don't believe it is acceptable for gcc to require a development version 
> : of gas be used.
> 
> I agree with that, but I still ike the idea of simplifying the mess of
> header arm files by unifying the definitionsof ASM_SPEC.

I'm not against simplifying it (if that is possible); but the current 
definition is wrong for so many cases that we would have to override it in 
almost all cases (which probably makes it even harder to maintain).

>  Wouldn't it
> just be simpler to suppress the definition of ASM_SPEC if the host
> asssembler is an a.out assembler ?  ie something like:
> 
> 
>   #if !defined ASM_SPEC && !defined AOUT
>   #define ASM_SPEC "\
>   %{mbig-endian:-EB} \
What if the default is big-endian and we want little-endian?

>   %{mcpu=*:-m%*} \
What if we have a default cpu selected (eg by configure)?  Does configure 
for gas support --with-cpu?

>   %{march=*:-m%*} \
likewise (but less so -- I don't think this can be selected by configure).

>   %{mapcs-*:-mapcs-%*} \
>   %{matpcs:-matpcs} \
This hasn't been decided yet....

>   %{mapcs-float:-mfloat} \
This is duplicated by the apcs flag above.

>   %{msoft-float:-mno-fpu} \
What if soft-float is the default and we want hard-float?

>   %{mthumb-interwork:-mthumb-interwork} \
...

>   " SUBTARGET_EXTRA_ASM_SPEC
ANSI concatenation not allowed in GCC sources.

>   #endif
> 
> [I do not know which cpp symbol will be defined by a.out hosts, so I
> guessed in the example above].
> 
We might be able to do something with the EXTRA_SPECS stuff, but I'm not 
sure it will be easy, even then.

R.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
  2000-03-29 11:25 recent arm.h change Nick Clifton
  2000-03-29 11:41 ` Richard Earnshaw
@ 2000-03-29 11:41 ` Philip Blundell
  1 sibling, 0 replies; 8+ messages in thread
From: Philip Blundell @ 2000-03-29 11:41 UTC (permalink / raw)
  To: Nick Clifton; +Cc: rearnsha, gcc

>I agree with that, but I still ike the idea of simplifying the mess of
>header arm files by unifying the definitionsof ASM_SPEC.  Wouldn't it
>just be simpler to suppress the definition of ASM_SPEC if the host
>asssembler is an a.out assembler ?  ie something like:
>
>  #if !defined ASM_SPEC && !defined AOUT

This doesn't strike me as especially clean.  If you wanted to go down this 
road then the thing to do would probably be to stop elf.h et al. from 
including aout.h, and keep the latter for definitions that are genuinely a.out 
specific.

p.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
@ 2000-03-30 12:21 Nick Clifton
  0 siblings, 0 replies; 8+ messages in thread
From: Nick Clifton @ 2000-03-30 12:21 UTC (permalink / raw)
  To: rearnsha; +Cc: gcc

Hi Richard,

: Can you back it out on the branch as well?

Sure - I will check in the patch below.

: Also, you forgot to commit a ChangeLog entry.

Oops - sorry.  I have now fixed this.

Cheers
	Nick


2000-03-30  Nick Clifton  <nickc@cygnus.com>

	* config/arm/semi.h (ASM_SPEC): Restore definition.
	(SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.

	* config/arm/elf.h (ASM_SPEC): Restore definition.
	(SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.

	* config/arm/arm.h (ASM_SPEC): Remove definition.
	(SUBTARGET_EXTRA_ASM_SPEC): Remove definition.

Index: arm.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/arm.h,v
retrieving revision 1.49.2.15
diff -p -r1.49.2.15 arm.h
*** arm.h	2000/03/24 19:06:08	1.49.2.15
--- arm.h	2000/03/30 20:19:02
*************** Unrecognized value in TARGET_CPU_DEFAULT
*** 267,287 ****
  #define SUBTARGET_CPP_SPEC      ""
  #endif
  
- #ifndef SUBTARGET_EXTRA_ASM_SPEC
- #define SUBTARGET_EXTRA_ASM_SPEC
- #endif
- 
- #ifndef ASM_SPEC
- #define ASM_SPEC "\
- %{mbig-endian:-EB} \
- %{mcpu=*:-m%*} \
- %{march=*:-m%*} \
- %{mapcs-*:-mapcs-%*} \
- %{mapcs-float:-mfloat} \
- %{msoft-float:-mno-fpu} \
- %{mthumb-interwork:-mthumb-interwork} \
- " SUBTARGET_EXTRA_ASM_SPEC
- #endif
  \f
  /* Run-time Target Specification.  */
  #ifndef TARGET_VERSION
--- 267,272 ----

Index: elf.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/elf.h,v
retrieving revision 1.13.2.7
diff -p -r1.13.2.7 elf.h
*** elf.h	2000/03/24 19:06:09	1.13.2.7
--- elf.h	2000/03/30 20:19:02
*************** Boston, MA 02111-1307, USA.  */
*** 36,41 ****
--- 36,57 ----
  #define SUBTARGET_CPP_SPEC  "-Darm_elf -D__ELF__"
  #endif
  
+ #ifndef SUBTARGET_EXTRA_ASM_SPEC
+ #define SUBTARGET_EXTRA_ASM_SPEC
+ #endif
+ 
+ #ifndef ASM_SPEC
+ #define ASM_SPEC "\
+ %{mbig-endian:-EB} \
+ %{mcpu=*:-m%*} \
+ %{march=*:-m%*} \
+ %{mapcs-*:-mapcs-%*} \
+ %{mapcs-float:-mfloat} \
+ %{msoft-float:-mno-fpu} \
+ %{mthumb-interwork:-mthumb-interwork} \
+ " SUBTARGET_EXTRA_ASM_SPEC
+ #endif
+ 
  /* The following macro defines the format used to output the second
     operand of the .type assembler directive.  Different svr4 assemblers
     expect various different forms for this operand.  The one given here

Index: semi.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/semi.h,v
retrieving revision 1.2.10.4
diff -p -r1.2.10.4 semi.h
*** semi.h	2000/03/24 19:06:09	1.2.10.4
--- semi.h	2000/03/30 20:19:02
*************** Boston, MA 02111-1307, USA.  */
*** 35,40 ****
--- 35,56 ----
  #define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_APCS_FRAME)
  #endif
  
+ #ifndef SUBTARGET_EXTRA_ASM_SPEC
+ #define SUBTARGET_EXTRA_ASM_SPEC
+ #endif
+ 
+ #ifndef ASM_SPEC
+ #define ASM_SPEC "\
+ %{mbig-endian:-EB} \
+ %{mcpu=*:-m%*} \
+ %{march=*:-m%*} \
+ %{mapcs-*:-mapcs-%*} \
+ %{mapcs-float:-mfloat} \
+ %{msoft-float:-mno-fpu} \
+ %{mthumb-interwork:-mthumb-interwork} \
+ " SUBTARGET_EXTRA_ASM_SPEC
+ #endif
+ 
  #include "arm/aout.h"
  
  #undef  CPP_APCS_PC_DEFAULT_SPEC

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
  2000-03-29 12:46 Nick Clifton
@ 2000-03-30  1:45 ` Richard Earnshaw
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Earnshaw @ 2000-03-30  1:45 UTC (permalink / raw)
  To: Nick Clifton; +Cc: rearnsha

nickc@cygnus.com said:
>   OK - I am going to check in to the following patch to remove my
>   ASM_SPEC definition from arm.h and also to fix a typo in linux-elf.h
>   at the same time. 

Can you back it out on the branch as well?

Also, you forgot to commit a ChangeLog entry.

R

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
@ 2000-03-29 12:46 Nick Clifton
  2000-03-30  1:45 ` Richard Earnshaw
  0 siblings, 1 reply; 8+ messages in thread
From: Nick Clifton @ 2000-03-29 12:46 UTC (permalink / raw)
  To: rearnsha; +Cc: gcc

Hi Richard,

  OK - I am going to check in to the following patch to remove my
  ASM_SPEC definition from arm.h and also to fix a typo in linux-elf.h
  at the same time.

Cheers
	Nick

2000-03-29  Nick Clifton  <nickc@cygnus.com>

	* config/arm/arm.h: Undo effects of previous delta:
	(ASM_SPEC): Do not define.
	(SUBTARGET_EXTRA_ASM_SPEC): Do not define.

	* config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
	typo. 

Index: arm.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/arm.h,v
retrieving revision 1.67
diff -p -r1.67 arm.h
*** arm.h	2000/03/29 19:15:36	1.67
--- arm.h	2000/03/29 20:44:02
*************** Unrecognized value in TARGET_CPU_DEFAULT
*** 249,271 ****
  #ifndef SUBTARGET_CPP_SPEC
  #define SUBTARGET_CPP_SPEC      ""
  #endif
- 
- #ifndef SUBTARGET_EXTRA_ASM_SPEC
- #define SUBTARGET_EXTRA_ASM_SPEC
- #endif
- 
- #ifndef ASM_SPEC
- #define ASM_SPEC "\
- %{mbig-endian:-EB} \
- %{mcpu=*:-m%*} \
- %{march=*:-m%*} \
- %{mapcs-*:-mapcs-%*} \
- %{matpcs:-matpcs} \
- %{mapcs-float:-mfloat} \
- %{msoft-float:-mno-fpu} \
- %{mthumb-interwork:-mthumb-interwork} \
- " SUBTARGET_EXTRA_ASM_SPEC
- #endif
  \f
  /* Run-time Target Specification.  */
  #ifndef TARGET_VERSION
--- 249,254 ----

Index: linux-elf.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/arm/linux-elf.h,v
retrieving revision 1.13
diff -p -r1.13 linux-elf.h
*** linux-elf.h	1999/12/18 13:34:21	1.13
--- linux-elf.h	2000/03/29 20:44:02
*************** Boston, MA 02111-1307, USA.  */
*** 36,42 ****
  	" %{mapcs-26:-m armelf_linux26} %{!mapcs-26:-m armelf_linux} -p"
  # endif
  # define SUBTARGET_EXTRA_ASM_SPEC	\
! 	" %{mapcs-26:-mapcs-26} %(!mapcs-26:-mapcs-32}"
  # define MULTILIB_DEFAULTS \
  	{ "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  # define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
--- 36,42 ----
  	" %{mapcs-26:-m armelf_linux26} %{!mapcs-26:-m armelf_linux} -p"
  # endif
  # define SUBTARGET_EXTRA_ASM_SPEC	\
! 	" %{mapcs-26:-mapcs-26} %{!mapcs-26:-mapcs-32}"
  # define MULTILIB_DEFAULTS \
  	{ "mlittle-endian", "mhard-float", "mapcs-32", "mno-thumb-interwork" }
  # define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
*************** Boston, MA 02111-1307, USA.  */
*** 50,56 ****
  	" %{mapcs-32:-m armelf_linux} %{!mapcs-32:-m armelf_linux26} -p"
  # endif
  # define SUBTARGET_EXTRA_ASM_SPEC	\
! 	" %{mapcs-32:-mapcs-32} %(!mapcs-32:-mapcs-26}"
  # define MULTILIB_DEFAULTS \
  	{ "mlittle-endian", "mhard-float", "mapcs-26", "mno-thumb-interwork" }
  #endif
--- 50,56 ----
  	" %{mapcs-32:-m armelf_linux} %{!mapcs-32:-m armelf_linux26} -p"
  # endif
  # define SUBTARGET_EXTRA_ASM_SPEC	\
! 	" %{mapcs-32:-mapcs-32} %{!mapcs-32:-mapcs-26}"
  # define MULTILIB_DEFAULTS \
  	{ "mlittle-endian", "mhard-float", "mapcs-26", "mno-thumb-interwork" }
  #endif

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: recent arm.h change
@ 2000-03-29 12:11 Nick Clifton
  0 siblings, 0 replies; 8+ messages in thread
From: Nick Clifton @ 2000-03-29 12:11 UTC (permalink / raw)
  To: rearnsha; +Cc: gcc

Hi Richard,

: We might be able to do something with the EXTRA_SPECS stuff, but I'm
: not sure it will be easy, even then.

Ok - I have been persuaded.  I will post a patch that undoes my
previous delta in a short while.

Cheers
	Nick

^ permalink raw reply	[flat|nested] 8+ messages in thread

* recent arm.h change
@ 2000-03-29 11:15 Richard Earnshaw
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Earnshaw @ 2000-03-29 11:15 UTC (permalink / raw)
  To: nickc; +Cc: rearnsha, gcc

Nick,

Your recent change on the branch

2000-03-24  Nick Clifton  <nickc@cygnus.com>

        * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
        already defined.
        (ASM_SPEC): Define if not already defined.
        (ASM_OUTPUT_DEF_FROM_DECLS): Define.

breaks builds on a.out assemblers.  These assemblers don't support all the 
flags that this defines, even in the latest builds.  The defines need to 
be moved to the elf (and maybe coff) SUBTARGET_EXTRA_ASM_SPEC defines.  We 
also need to check that there is at least one official release of GAS that 
supports these before we can add them at all.

I don't believe it is acceptable for gcc to require a development version 
of gas be used.

Richard.



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2000-03-30 12:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-03-29 11:25 recent arm.h change Nick Clifton
2000-03-29 11:41 ` Richard Earnshaw
2000-03-29 11:41 ` Philip Blundell
  -- strict thread matches above, loose matches on Subject: below --
2000-03-30 12:21 Nick Clifton
2000-03-29 12:46 Nick Clifton
2000-03-30  1:45 ` Richard Earnshaw
2000-03-29 12:11 Nick Clifton
2000-03-29 11:15 Richard Earnshaw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).