This patch adds support for FreeBSD ARM in gas.
authorNick Clifton <nickc@redhat.com>
Tue, 19 Aug 2014 14:51:43 +0000 (15:51 +0100)
committerNick Clifton <nickc@redhat.com>
Tue, 19 Aug 2014 14:51:43 +0000 (15:51 +0100)
Before FreeBSD-8 there was/is no arm support from the OS side.
FreeBSD-9.x added ARM support but only for the OABI.
From FreeBSD-10 upwards there is EABI support.

    * Makefile.am: Add FreeBSD ARM support.
    * Mafefile.in: Regenerate.
    * configure.tgt: Add FreeBSD ARM support.
    * config/te-armfbsdeabi.h: New file.
    * config/te-armfbsdvfp.h: Likewise.

gas/ChangeLog
gas/Makefile.am
gas/Makefile.in
gas/config/te-armfbsdeabi.h [new file with mode: 0644]
gas/config/te-armfbsdvfp.h [new file with mode: 0644]
gas/configure.tgt

index e1fbf8e..4e1bb78 100644 (file)
@@ -1,3 +1,11 @@
+2014-08-19  Andreas Tobler  <andreast@fgznet.ch>
+
+       * Makefile.am: Add FreeBSD ARM support.
+       * Mafefile.in: Regenerate.
+       * configure.tgt: Add FreeBSD ARM support.
+       * config/te-armfbsdeabi.h: New file.
+       * config/te-armfbsdvfp.h: Likewise.
+
 2014-08-19  Alan Modra  <amodra@gmail.com>
 
        * configure: Regenerate.
index 5727c75..972d379 100644 (file)
@@ -296,6 +296,8 @@ TARG_ENV_HFILES = \
        config/te-386bsd.h \
        config/te-aix5.h \
        config/te-armeabi.h \
+       config/te-armfbsddeabi.h \
+       config/te-armfbsdvfp.h \
        config/te-armlinuxeabi.h \
        config/te-dynix.h \
        config/te-epoc-pe.h \
index be2711b..f42df83 100644 (file)
@@ -565,6 +565,8 @@ TARG_ENV_HFILES = \
        config/te-386bsd.h \
        config/te-aix5.h \
        config/te-armeabi.h \
+       config/te-armfbsddeabi.h \
+       config/te-armfbsdvfp.h \
        config/te-armlinuxeabi.h \
        config/te-dynix.h \
        config/te-epoc-pe.h \
diff --git a/gas/config/te-armfbsdeabi.h b/gas/config/te-armfbsdeabi.h
new file mode 100644 (file)
index 0000000..8a72e21
--- /dev/null
@@ -0,0 +1,22 @@
+/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
+
+   This file is part of GAS, the GNU Assembler.
+
+   GAS is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 3,
+   or (at your option) any later version.
+
+   GAS is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+   the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GAS; see the file COPYING.  If not, write to the Free
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+#include "te-freebsd.h"
+
+#define EABI_DEFAULT EF_ARM_EABI_VER5
diff --git a/gas/config/te-armfbsdvfp.h b/gas/config/te-armfbsdvfp.h
new file mode 100644 (file)
index 0000000..945ac7c
--- /dev/null
@@ -0,0 +1,22 @@
+/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
+
+   This file is part of GAS, the GNU Assembler.
+
+   GAS is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 3,
+   or (at your option) any later version.
+
+   GAS is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
+   the GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GAS; see the file COPYING.  If not, write to the Free
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
+
+#include "te-armfbsdeabi.h"
+
+#define FPU_DEFAULT FPU_ARCH_VFP
index 9319d33..4b78908 100644 (file)
@@ -138,6 +138,10 @@ case ${generic_target} in
   arm-*-symbianelf*)                   fmt=elf em=symbian ;;
   arm-*-kaos*)                         fmt=elf ;;
   arm-*-conix*)                                fmt=elf ;;
+  arm-*-freebsd[89].* | armeb-*-freebsd[89].*)
+                                       fmt=elf  em=freebsd ;;
+  arm-*-freebsd* | armeb-*-freebsd*)   fmt=elf  em=armfbsdeabi ;;
+  arm*-*-freebsd*)                     fmt=elf  em=armfbsdvfp ;;
   arm-*-linux*aout*)                   fmt=aout em=linux ;;
   arm-*-linux-*eabi*)                  fmt=elf  em=armlinuxeabi ;;
   arm-*-linux-*)                       fmt=elf  em=linux ;;