public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* RFC: consolidate ARM config for BFD
@ 2005-03-21  0:37 Simon Richter
  2005-03-21  0:45 ` Simon Richter
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Simon Richter @ 2005-03-21  0:37 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 652 bytes --]

Hi,

this patch attempts to make the ARM configuration more orthogonal. With
this patch, all targets except for arm-netbsd* arm-openbsd* and
arm-*-riscix* are available in big and little endian configurations,
with little endian being the default. Also, "arm", "thumb", "strongarm"
and "xscale" are equivalent, with the exception of arm-*-riscix*. Also,
it asks people using nto*arm* to use arm*-*-nto*.

This is the least intrusive approach. It might probably be more readable
to invent a new variable that looks like $targ, but has a hierarchical
approach to the cpu type, for example using "arm:thumb" instead of just
"thumb".

Comments?

    Simon

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 375 bytes --]

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-21  0:37 RFC: consolidate ARM config for BFD Simon Richter
@ 2005-03-21  0:45 ` Simon Richter
  2005-03-21  0:49   ` Paul Brook
  2005-03-22  4:19 ` Simon Richter
  2005-04-04 14:08 ` Richard Earnshaw
  2 siblings, 1 reply; 8+ messages in thread
From: Simon Richter @ 2005-03-21  0:45 UTC (permalink / raw)
  To: binutils


[-- Attachment #1.1: Type: text/plain, Size: 136 bytes --]

Hi,

> this patch attempts to make the ARM configuration more orthogonal.

[...]

Obviously, I should also attach the patch.

    Simon

[-- Attachment #1.2: diff --]
[-- Type: text/plain, Size: 8569 bytes --]

Index: bfd/config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.182
diff -u -r1.182 config.bfd
--- bfd/config.bfd	15 Mar 2005 14:14:08 -0000	1.182
+++ bfd/config.bfd	20 Mar 2005 19:20:20 -0000
@@ -92,6 +92,11 @@
 *)		 targ_archs=bfd_${targ_cpu}_arch ;;
 esac

+case "${targ_cpu}" in
+  *eb)		endian=big ;;
+  *el)		endian=little ;;
+  *)		endian=default ;;
+esac

 # WHEN ADDING ENTRIES TO THIS MATRIX:
 #  Make sure that the left side always has two dashes.  Otherwise you
@@ -172,124 +177,133 @@
     targ_selvecs=bfd_elf32_bigarc_vec
     ;;

-  armeb-*-netbsdelf*)
-    targ_defvec=bfd_elf32_bigarm_vec
-    targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
-    ;;
-  arm-*-netbsdelf*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
-    ;;
-  arm-*-netbsd* | arm-*-openbsd*)
+  arm-*-netbsd* | thumb-*-netbsd* | strongarm-*-netbsd* | xscale-*-netbsd* | \
+  arm-*-openbsd* | thumb-*-openbsd* | strongarm-*-openbsd* | xscale-*-openbsd*)
     targ_defvec=armnetbsd_vec
     targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
     targ_underscore=yes
     targ_cflags=-D__QNXTARGET__
     ;;
-  arm-*-nto* | nto*arm*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+  arm*-*-netbsdelf* | thumb*-*-netbsdelf* | strongarm*-*-netbsdelf* | xscale*-*-netbsdelf* | \
+  arm*-*-netbsd-elf* | thumb*-*-netbsd-elf* | strongarm*-*-netbsd-elf* | xscale*-*-netbsd-elf*)
+    case "${endian}" in
+      big)
+        targ_defvec=bfd_elf32_bigarm_vec
+        targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
+        ;;
+      little | default)
+        targ_defvec=bfd_elf32_littlearm_vec
+        targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
+        ;;
+    esac
     ;;
   arm-*-riscix*)
     targ_defvec=riscix_vec
     ;;
-  arm-epoc-pe*)
-    targ_defvec=arm_epoc_pe_little_vec
-    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
+  arm*-epoc-pe* | thumb*-epoc-pe* | strongarm*-epoc-pe* | xscale*-epoc-pe*)
+    case "${endian}" in
+      big)
+        targ_defvec=arm_epoc_pe_big_vec
+        targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pei_big_vec arm_epoc_pei_little_vec"
+        ;;
+      little | default)
+        targ_defvec=arm_epoc_pe_little_vec
+        targ_selvecs="arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
+        ;;
+    esac
     targ_underscore=no
     targ_cflags=-DARM_COFF_BUGFIX
     ;;
-  arm-wince-pe | arm-*-wince)
-    targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
-    targ_underscore=no
+  arm*-wince-* | thumb*-wince-* | strongarm*-wince-* | xscale*-wince-* | \
+  arm*-*-wince | thumb*-*-wince | strongarm*-*-wince | xscale*-*-wince)
     targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
-    ;;
-  arm-*-pe*)
-    targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
-    targ_underscore=yes
-    ;;
-  arm-*-aout | armel-*-aout)
-    targ_defvec=aout_arm_little_vec
-    targ_selvecs=aout_arm_big_vec
-    ;;
-  armeb-*-aout)
-    targ_defvec=aout_arm_big_vec
-    targ_selvecs=aout_arm_little_vec
-    ;;
-  arm-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
-    targ_underscore=yes
-    ;;
-  arm-*-rtems*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  armeb-*-elf | arm*b-*-linux-gnu*)
-    targ_defvec=bfd_elf32_bigarm_vec
-    targ_selvecs=bfd_elf32_littlearm_vec
-    ;;
-  arm-*-kaos* | strongarm-*-kaos*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
-  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
-  arm*-*-eabi* )
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  arm*-*-vxworks | arm*-*-windiss)
-    targ_defvec=bfd_elf32_littlearm_vxworks_vec
-    targ_selvecs=bfd_elf32_bigarm_vxworks_vec
-    ;;
-  arm*-*-symbianelf*)
-    targ_defvec=bfd_elf32_littlearm_symbian_vec
-    targ_selvecs=bfd_elf32_bigarm_symbian_vec
-    ;;
-  arm9e-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-
-  thumb-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
-    targ_underscore=yes
-    ;;
-  thumb-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  thumb-epoc-pe*)
-    targ_defvec=arm_epoc_pe_little_vec
-    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
+    ;&
+  arm*-*-pe | thumb*-*-pe | strongarm*-*-pe | xscale*-*-pe)
+    case "${endian}" in
+      big)
+        targ_defvec=armpe_little_vec
+        targ_selvecs="armpe_big_vec armpei_little_vec armpei_big_vec"
+        ;;
+      little | default)
+        targ_defvec=armpe_big_vec
+        targ_selvecs="armpe_little_ve armpei_big_vec armpei_little_vec"
+        ;;
+    esac
     targ_underscore=no
     ;;
-  thumb-*-pe*)
-    targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
-    targ_underscore=yes
-    ;;
-  strongarm-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+  arm*-*-aout | thumb*-*-aout | strongarm*-*-aout | xscale*-*-aout)
+    case "${endian}" in
+      big)
+        targ_defvec=aout_arm_big_vec
+        targ_selvecs=aout_arm_little_vec
+        ;;
+      little | default)
+        targ_defvec=aout_arm_little_vec
+        targ_selvecs=aout_arm_big_vec
+        ;;
+    esac
     ;;
-  strongarm-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
+  arm*-*-coff | thumb*-*-coff | strongarm*-*-coff | xscale*-*-coff)
+    case "${endian}" in
+      big)
+        targ_defvec=armcoff_little_vec
+        targ_selvecs=armcoff_big_vec
+        ;;
+      little | default)
+        targ_defvec=armcoff_little_vec
+        targ_selvecs=armcoff_big_vec
+        ;;
+    esac
     targ_underscore=yes
     ;;
-  xscale-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+  arm*-*-vxworks | thumb*-*-vxworks | strongarm*-*-vxworks | xscale*-*-vxworks | \
+  arm*-*-windiss | thumb*-*-windiss | strongarm*-*-windiss | xscale*-*-windiss)
+    case "${endian}" in
+      big)
+        targ_defvec=bfd_elf32_bigarm_vxworks_vec
+        targ_selvecs=bfd_elf32_littlearm_vxworks_vec
+        ;;
+      little | default)
+        targ_defvec=bfd_elf32_littlearm_vxworks_vec
+        targ_selvecs=bfd_elf32_bigarm_vxworks_vec
+        ;;
+    esac
+    ;;
+  arm*-*-symbianelf* | thumb*-*-symbianelf* | strongarm*-*-symbianelf* | xscale*-*-symbianelf*)
+    case "${endian}" in
+      big)
+        targ_defvec=bfd_elf32_bigarm_symbian_vec
+        targ_selvecs=bfd_elf32_littlearm_symbian_vec
+        ;;
+      little | default)
+        targ_defvec=bfd_elf32_littlearm_symbian_vec
+        targ_selvecs=bfd_elf32_bigarm_symbian_vec
+        ;;
+    esac
     ;;
-  xscale-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
-    targ_underscore=yes
+  nto*arm*)
+    echo "Note: Please use a target matching arm*-*-nto*"
+    ;&
+  arm*-*-elf* | thumb*-*-elf* | strongarm*-*-elf* | xscale*-*-elf* |
+  arm*-*-eabi* | thumb*-*-eabi* | strongarm*-*-eabi* | xscale*-*-eabi* |
+  arm*-*-freebsd* | thumb*-*-freebsd* | strongarm*-*-freebsd* | xscale*-*-freebsd* |
+  arm*-*-kfreebsd*-gnu | thumb*-*-kfreebsd*-gnu | strongarm*-*-kfreebsd*-gnu | xscale*-*-kfreebsd*-gnu |
+  arm*-*-kaos* | thumb*-*-kaos* | strongarm*-*-kaos* | xscale*-*-kaos* |
+  arm*-*-linux* | thumb*-*-linux* | strongarm*-*-linux* | xscale*-*-linux* |
+  arm*-*-uclinux* | thumb*-*-uclinux* | strongarm*-*-uclinux* | xscale*-*-uclinux* |
+  arm*-*-conix* | thumb*-*-conix* | strongarm*-*-conix* | xscale*-*-conix* |
+  arm*-*-nto* | thumb*-*-nto* | strongarm*-*-nto* | xscale*-*-nto* |
+  arm*-*-rtems* | thumb*-*-rtems* | strongarm*-*-rtems* | xscale*-*-rtems* |
+    case "${endian}" in
+      big)
+        targ_defvec=bfd_elf32_bigarm_vec
+        targ_selvecs=bfd_elf32_littlearm_vec
+        ;;
+      little | default)
+        targ_defvec=bfd_elf32_littlearm_vec
+        targ_selvecs=bfd_elf32_bigarm_vec
+        ;;
+    esac
     ;;

   a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 375 bytes --]

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-21  0:45 ` Simon Richter
@ 2005-03-21  0:49   ` Paul Brook
  2005-03-21  1:55     ` Simon Richter
  0 siblings, 1 reply; 8+ messages in thread
From: Paul Brook @ 2005-03-21  0:49 UTC (permalink / raw)
  To: binutils; +Cc: Simon Richter

On Sunday 20 March 2005 19:45, Simon Richter wrote:
> strongarm*-*-symbianelf*

This will never happen. The arm-symbianelf configuration assumes armv5 or 
later, and strongarm is and armv4t.

Paul

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-21  0:49   ` Paul Brook
@ 2005-03-21  1:55     ` Simon Richter
  0 siblings, 0 replies; 8+ messages in thread
From: Simon Richter @ 2005-03-21  1:55 UTC (permalink / raw)
  To: Paul Brook; +Cc: binutils

[-- Attachment #1: Type: text/plain, Size: 196 bytes --]

Hi,

Paul Brook:

>>strongarm*-*-symbianelf*

> This will never happen. The arm-symbianelf configuration assumes armv5 or
> later, and strongarm is and armv4t.

Okay, removed that one.

    Simon

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 375 bytes --]

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-21  0:37 RFC: consolidate ARM config for BFD Simon Richter
  2005-03-21  0:45 ` Simon Richter
@ 2005-03-22  4:19 ` Simon Richter
  2005-03-22  4:21   ` Andreas Schwab
  2005-04-04 14:08 ` Richard Earnshaw
  2 siblings, 1 reply; 8+ messages in thread
From: Simon Richter @ 2005-03-22  4:19 UTC (permalink / raw)
  To: binutils


[-- Attachment #1.1: Type: text/plain, Size: 129 bytes --]

Hi,

Attached is the current version of the patch for bfd/config.bfd. Unlike
the last patch, it works. :-)

Comments?

    Simon

[-- Attachment #1.2: diff --]
[-- Type: text/plain, Size: 9655 bytes --]

Index: bfd/config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.182
diff -u -r1.182 config.bfd
--- bfd/config.bfd	15 Mar 2005 14:14:08 -0000	1.182
+++ bfd/config.bfd	22 Mar 2005 00:40:18 -0000
@@ -42,6 +42,13 @@
 esac

 case $targ in
+ nto*arm*)
+    echo "*** Please use one of the arm*-*-nto* targets"
+    exit 1
+    ;;
+esac
+
+case $targ in
  m68*-*-lynxos* | \
  sparc-*-lynxos* | \
  vax-*-vms* | \
@@ -92,7 +99,6 @@
 *)		 targ_archs=bfd_${targ_cpu}_arch ;;
 esac

-
 # WHEN ADDING ENTRIES TO THIS MATRIX:
 #  Make sure that the left side always has two dashes.  Otherwise you
 #  can get spurious matches.  Even for unambiguous cases, do this as a
@@ -172,125 +178,124 @@
     targ_selvecs=bfd_elf32_bigarc_vec
     ;;

-  armeb-*-netbsdelf*)
-    targ_defvec=bfd_elf32_bigarm_vec
-    targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
-    ;;
-  arm-*-netbsdelf*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
-    ;;
-  arm-*-netbsd* | arm-*-openbsd*)
+  arm-*-netbsd* | thumb-*-netbsd* | strongarm-*-netbsd* | xscale-*-netbsd* | \
+  arm-*-openbsd* | thumb-*-openbsd* | strongarm-*-openbsd* | xscale-*-openbsd*)
     targ_defvec=armnetbsd_vec
     targ_selvecs="bfd_elf32_littlearm_vec bfd_elf32_bigarm_vec"
     targ_underscore=yes
     targ_cflags=-D__QNXTARGET__
     ;;
-  arm-*-nto* | nto*arm*)
+  arm*eb-*-netbsdelf* | thumb*eb-*-netbsdelf* | strongarm*eb-*-netbsdelf* | xscale*eb-*-netbsdelf* | \
+  arm*eb-*-netbsd-elf* | thumb*eb-*-netbsd-elf* | strongarm*eb-*-netbsd-elf* | xscale*eb-*-netbsd-elf*)
+    targ_defvec=bfd_elf32_bigarm_vec
+    targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
+    ;;
+  arm*-*-netbsdelf* | thumb*-*-netbsdelf* | strongarm*-*-netbsdelf* | xscale*-*-netbsdelf* | \
+  arm*-*-netbsd-elf* | thumb*-*-netbsd-elf* | strongarm*-*-netbsd-elf* | xscale*-*-netbsd-elf*)
     targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+    targ_selvecs="bfd_elf32_bigarm_vec armnetbsd_vec"
     ;;
   arm-*-riscix*)
     targ_defvec=riscix_vec
     ;;
-  arm-epoc-pe*)
+  arm*eb-epoc-pe* | thumb*eb-epoc-pe* | strongarm*eb-epoc-pe* | xscale*eb-epoc-pe*)
+    targ_defvec=arm_epoc_pe_big_vec
+    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pei_big_vec arm_epoc_pei_little_vec"
+    targ_underscore=no
+    targ_cflags=-DARM_COFF_BUGFIX
+    ;;
+  arm*-epoc-pe* | thumb*-epoc-pe* | strongarm*-epoc-pe* | xscale*-epoc-pe*)
     targ_defvec=arm_epoc_pe_little_vec
-    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
+    targ_selvecs="arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
     targ_underscore=no
     targ_cflags=-DARM_COFF_BUGFIX
     ;;
-  arm-wince-pe | arm-*-wince)
+  arm*eb-wince-* | thumb*eb-wince-* | strongarm*eb-wince-* | xscale*eb-wince-* | \
+  arm*eb-*-wince | thumb*eb-*-wince | strongarm*eb-*-wince | xscale*eb-*-wince)
     targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
+    targ_selvecs="armpe_big_vec armpei_little_vec armpei_big_vec"
+    targ_underscore=no
+    arg_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
+    ;;
+  arm*-wince-* | thumb*-wince-* | strongarm*-wince-* | xscale*-wince-* | \
+  arm*-*-wince | thumb*-*-wince | strongarm*-*-wince | xscale*-*-wince)
+    targ_defvec=armpe_big_vec
+    targ_selvecs="armpe_little_ve armpei_big_vec armpei_little_vec"
     targ_underscore=no
-    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
+    arg_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
     ;;
-  arm-*-pe*)
+  arm*eb-*-pe | thumb*eb-*-pe | strongarm*eb-*-pe | xscale*eb-*-pe)
     targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
-    targ_underscore=yes
+    targ_selvecs="armpe_big_vec armpei_little_vec armpei_big_vec"
+    targ_underscore=no
     ;;
-  arm-*-aout | armel-*-aout)
-    targ_defvec=aout_arm_little_vec
-    targ_selvecs=aout_arm_big_vec
+  arm*-*-pe | thumb*-*-pe | strongarm*-*-pe | xscale*-*-pe)
+    targ_defvec=armpe_big_vec
+    targ_selvecs="armpe_little_ve armpei_big_vec armpei_little_vec"
+    targ_underscore=no
     ;;
-  armeb-*-aout)
+  arm*eb-*-aout | thumb*eb-*-aout | strongarm*eb-*-aout | xscale*eb-*-aout)
     targ_defvec=aout_arm_big_vec
     targ_selvecs=aout_arm_little_vec
     ;;
-  arm-*-coff)
+  arm*-*-aout | thumb*-*-aout | strongarm*-*-aout | xscale*-*-aout)
+    targ_defvec=aout_arm_little_vec
+    targ_selvecs=aout_arm_big_vec
+    ;;
+  arm*eb-*-coff | thumb*eb-*-coff | strongarm*eb-*-coff | xscale*eb-*-coff)
     targ_defvec=armcoff_little_vec
     targ_selvecs=armcoff_big_vec
     targ_underscore=yes
     ;;
-  arm-*-rtems*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  armeb-*-elf | arm*b-*-linux-gnu*)
-    targ_defvec=bfd_elf32_bigarm_vec
-    targ_selvecs=bfd_elf32_littlearm_vec
-    ;;
-  arm-*-kaos* | strongarm-*-kaos*)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  arm-*-elf | arm-*-freebsd* | arm*-*-linux-gnu* | arm*-*-conix* | \
-  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
-  arm*-*-eabi* )
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-  arm*-*-vxworks | arm*-*-windiss)
-    targ_defvec=bfd_elf32_littlearm_vxworks_vec
-    targ_selvecs=bfd_elf32_bigarm_vxworks_vec
-    ;;
-  arm*-*-symbianelf*)
-    targ_defvec=bfd_elf32_littlearm_symbian_vec
-    targ_selvecs=bfd_elf32_bigarm_symbian_vec
-    ;;
-  arm9e-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
-    ;;
-
-  thumb-*-coff)
+  arm*-*-coff | thumb*-*-coff | strongarm*-*-coff | xscale*-*-coff)
     targ_defvec=armcoff_little_vec
     targ_selvecs=armcoff_big_vec
     targ_underscore=yes
     ;;
-  thumb-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+  arm*eb-*-vxworks | thumb*eb-*-vxworks | strongarm*eb-*-vxworks | xscale*eb-*-vxworks | \
+  arm*eb-*-windiss | thumb*eb-*-windiss | strongarm*eb-*-windiss | xscale*eb-*-windiss)
+    targ_defvec=bfd_elf32_bigarm_vxworks_vec
+    targ_selvecs=bfd_elf32_littlearm_vxworks_vec
     ;;
-  thumb-epoc-pe*)
-    targ_defvec=arm_epoc_pe_little_vec
-    targ_selvecs="arm_epoc_pe_little_vec arm_epoc_pe_big_vec arm_epoc_pei_little_vec arm_epoc_pei_big_vec"
-    targ_underscore=no
+  arm*-*-vxworks | thumb*-*-vxworks | strongarm*-*-vxworks | xscale*-*-vxworks | \
+  arm*-*-windiss | thumb*-*-windiss | strongarm*-*-windiss | xscale*-*-windiss)
+    targ_defvec=bfd_elf32_littlearm_vxworks_vec
+    targ_selvecs=bfd_elf32_bigarm_vxworks_vec
     ;;
-  thumb-*-pe*)
-    targ_defvec=armpe_little_vec
-    targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
-    targ_underscore=yes
+  arm*eb-*-symbianelf* | thumb*eb-*-symbianelf* | xscale*eb-*-symbianelf*)
+    targ_defvec=bfd_elf32_bigarm_symbian_vec
+    targ_selvecs=bfd_elf32_littlearm_symbian_vec
     ;;
-  strongarm-*-elf)
-    targ_defvec=bfd_elf32_littlearm_vec
-    targ_selvecs=bfd_elf32_bigarm_vec
+  arm*-*-symbianelf* | thumb*-*-symbianelf* | xscale*-*-symbianelf*)
+    targ_defvec=bfd_elf32_littlearm_symbian_vec
+    targ_selvecs=bfd_elf32_bigarm_symbian_vec
     ;;
-  strongarm-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
-    targ_underscore=yes
+  arm*eb-*-elf* | thumb*eb-*-elf* | strongarm*eb-*-elf* | xscale*eb-*-elf* | \
+  arm*eb-*-eabi* | thumb*eb-*-eabi* | strongarm*eb-*-eabi* | xscale*eb-*-eabi* | \
+  arm*eb-*-freebsd* | thumb*eb-*-freebsd* | strongarm*eb-*-freebsd* | xscale*eb-*-freebsd* | \
+  arm*eb-*-kfreebsd*-gnu | thumb*eb-*-kfreebsd*-gnu | strongarm*eb-*-kfreebsd*-gnu | xscale*eb-*-kfreebsd*-gnu | \
+  arm*eb-*-kaos* | thumb*eb-*-kaos* | strongarm*eb-*-kaos* | xscale*eb-*-kaos* | \
+  arm*eb-*-linux* | thumb*eb-*-linux* | strongarm*eb-*-linux* | xscale*eb-*-linux* | \
+  arm*eb-*-uclinux* | thumb*eb-*-uclinux* | strongarm*eb-*-uclinux* | xscale*eb-*-uclinux* | \
+  arm*eb-*-conix* | thumb*eb-*-conix* | strongarm*eb-*-conix* | xscale*eb-*-conix* | \
+  arm*eb-*-nto* | thumb*eb-*-nto* | strongarm*eb-*-nto* | xscale*eb-*-nto* | \
+  arm*eb-*-rtems* | thumb*eb-*-rtems* | strongarm*eb-*-rtems* | xscale*eb-*-rtems*)
+    targ_defvec=bfd_elf32_bigarm_vec
+    targ_selvecs=bfd_elf32_littlearm_vec
     ;;
-  xscale-*-elf)
+  arm*-*-elf* | thumb*-*-elf* | strongarm*-*-elf* | xscale*-*-elf* | \
+  arm*-*-eabi* | thumb*-*-eabi* | strongarm*-*-eabi* | xscale*-*-eabi* | \
+  arm*-*-freebsd* | thumb*-*-freebsd* | strongarm*-*-freebsd* | xscale*-*-freebsd* | \
+  arm*-*-kfreebsd*-gnu | thumb*-*-kfreebsd*-gnu | strongarm*-*-kfreebsd*-gnu | xscale*-*-kfreebsd*-gnu | \
+  arm*-*-kaos* | thumb*-*-kaos* | strongarm*-*-kaos* | xscale*-*-kaos* | \
+  arm*-*-linux* | thumb*-*-linux* | strongarm*-*-linux* | xscale*-*-linux* | \
+  arm*-*-uclinux* | thumb*-*-uclinux* | strongarm*-*-uclinux* | xscale*-*-uclinux* | \
+  arm*-*-conix* | thumb*-*-conix* | strongarm*-*-conix* | xscale*-*-conix* | \
+  arm*-*-nto* | thumb*-*-nto* | strongarm*-*-nto* | xscale*-*-nto* | \
+  arm*-*-rtems* | thumb*-*-rtems* | strongarm*-*-rtems* | xscale*-*-rtems*)
     targ_defvec=bfd_elf32_littlearm_vec
     targ_selvecs=bfd_elf32_bigarm_vec
     ;;
-  xscale-*-coff)
-    targ_defvec=armcoff_little_vec
-    targ_selvecs=armcoff_big_vec
-    targ_underscore=yes
-    ;;

   a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
   a29k-*-vxworks* | a29k-*-sysv* | a29k-*rtems*)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 375 bytes --]

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-22  4:19 ` Simon Richter
@ 2005-03-22  4:21   ` Andreas Schwab
  0 siblings, 0 replies; 8+ messages in thread
From: Andreas Schwab @ 2005-03-22  4:21 UTC (permalink / raw)
  To: Simon Richter; +Cc: binutils

Simon Richter <Simon.Richter@hogyros.de> writes:

>  case $targ in
> + nto*arm*)
> +    echo "*** Please use one of the arm*-*-nto* targets"
> +    exit 1
> +    ;;
> +esac

This should not be necessary, config.sub wouldn't recognize anything
matching nto*arm* anyway.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

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

* Re: RFC: consolidate ARM config for BFD
  2005-03-21  0:37 RFC: consolidate ARM config for BFD Simon Richter
  2005-03-21  0:45 ` Simon Richter
  2005-03-22  4:19 ` Simon Richter
@ 2005-04-04 14:08 ` Richard Earnshaw
  2005-04-04 14:10   ` Richard Earnshaw
  2 siblings, 1 reply; 8+ messages in thread
From: Richard Earnshaw @ 2005-04-04 14:08 UTC (permalink / raw)
  To: Simon Richter; +Cc: binutils

On Sun, 2005-03-20 at 19:42, Simon Richter wrote:
> Hi,
> 
> this patch attempts to make the ARM configuration more orthogonal. With
> this patch, all targets except for arm-netbsd* arm-openbsd* and
> arm-*-riscix* are available in big and little endian configurations,
> with little endian being the default. Also, "arm", "thumb", "strongarm"
> and "xscale" are equivalent, with the exception of arm-*-riscix*. Also,
> it asks people using nto*arm* to use arm*-*-nto*.
> 
> This is the least intrusive approach. It might probably be more readable
> to invent a new variable that looks like $targ, but has a hierarchical
> approach to the cpu type, for example using "arm:thumb" instead of just
> "thumb".
> 
> Comments?

I like the basic idea, but there are some problems which means this
can't go in yet...

> -  armeb-*-netbsdelf*)

NetBSD had big-endian support in config.bfd.  Why have you removed it?

Thumb as a cpu name has been deprecated for a long time now.  I suggest
that the time has now come to just kill it (it hasn't been in the
compiler for nearly 5 years).

Much as I'd like to do this there is, unfortunately, a more fundamental
problem that needs to be addressed first, in that for some
configurations (most notably Linux) config.guess does not correctly
canonicalize the endianness spec for the CPU, so we get strings like
armv4l and armv4b for little- and big-endian configurations
respectively.  I'm currently trying to work through a similar issue for
GCC and I hope to get a patch installed in config.guess to fix this
case; but without it it means your test

+case "${targ_cpu}" in
+  *eb)         endian=big ;;
+  *el)         endian=little ;;
+  *)           endian=default ;;
+esac

won't match correctly on all ARM configurations.

Finally, I think riscix can now be considered obsolete (again, support
in gcc was dropped some time ago).  But this is probably best left to a
separate patch.

R.

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

* Re: RFC: consolidate ARM config for BFD
  2005-04-04 14:08 ` Richard Earnshaw
@ 2005-04-04 14:10   ` Richard Earnshaw
  0 siblings, 0 replies; 8+ messages in thread
From: Richard Earnshaw @ 2005-04-04 14:10 UTC (permalink / raw)
  To: Simon Richter; +Cc: binutils

On Mon, 2005-04-04 at 15:08, Richard Earnshaw wrote:
> On Sun, 2005-03-20 at 19:42, Simon Richter wrote:
> > Hi,
> > 
> > this patch attempts to make the ARM configuration more orthogonal. With
> > this patch, all targets except for arm-netbsd* arm-openbsd* and
> > arm-*-riscix* are available in big and little endian configurations,
> > with little endian being the default. Also, "arm", "thumb", "strongarm"
> > and "xscale" are equivalent, with the exception of arm-*-riscix*. Also,
> > it asks people using nto*arm* to use arm*-*-nto*.
> > 
> > This is the least intrusive approach. It might probably be more readable
> > to invent a new variable that looks like $targ, but has a hierarchical
> > approach to the cpu type, for example using "arm:thumb" instead of just
> > "thumb".
> > 
> > Comments?
> 
> I like the basic idea, but there are some problems which means this
> can't go in yet...
> 
> > -  armeb-*-netbsdelf*)
> 
> NetBSD had big-endian support in config.bfd.  Why have you removed it?
> 
> Thumb as a cpu name has been deprecated for a long time now.  I suggest
> that the time has now come to just kill it (it hasn't been in the
> compiler for nearly 5 years).
> 
> Much as I'd like to do this there is, unfortunately, a more fundamental
> problem that needs to be addressed first, in that for some
> configurations (most notably Linux) config.guess does not correctly
> canonicalize the endianness spec for the CPU, so we get strings like
> armv4l and armv4b for little- and big-endian configurations
> respectively.  I'm currently trying to work through a similar issue for
> GCC and I hope to get a patch installed in config.guess to fix this
> case; but without it it means your test
> 
> +case "${targ_cpu}" in
> +  *eb)         endian=big ;;
> +  *el)         endian=little ;;
> +  *)           endian=default ;;
> +esac
> 
> won't match correctly on all ARM configurations.
> 
> Finally, I think riscix can now be considered obsolete (again, support
> in gcc was dropped some time ago).  But this is probably best left to a
> separate patch.
> 
> R.

Ooops, forgot to mention that a ChangeLog is mandatory for all
patches.   Please include one.

R.

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

end of thread, other threads:[~2005-04-04 14:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-21  0:37 RFC: consolidate ARM config for BFD Simon Richter
2005-03-21  0:45 ` Simon Richter
2005-03-21  0:49   ` Paul Brook
2005-03-21  1:55     ` Simon Richter
2005-03-22  4:19 ` Simon Richter
2005-03-22  4:21   ` Andreas Schwab
2005-04-04 14:08 ` Richard Earnshaw
2005-04-04 14:10   ` 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).