This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: consolidate ARM config for BFD


Hi,

this patch attempts to make the ARM configuration more orthogonal.

[...]


Obviously, I should also attach the patch.

Simon
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: signature.asc
Description: OpenPGP digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]