From f7f2534e71f51f11f9f00f6365d5d8f37e6df054 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 19 Aug 2014 15:51:43 +0100 Subject: [PATCH] This patch adds support for FreeBSD ARM in gas. 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 | 8 ++++++++ gas/Makefile.am | 2 ++ gas/Makefile.in | 2 ++ gas/config/te-armfbsdeabi.h | 22 ++++++++++++++++++++++ gas/config/te-armfbsdvfp.h | 22 ++++++++++++++++++++++ gas/configure.tgt | 4 ++++ 6 files changed, 60 insertions(+) create mode 100644 gas/config/te-armfbsdeabi.h create mode 100644 gas/config/te-armfbsdvfp.h diff --git a/gas/ChangeLog b/gas/ChangeLog index e1fbf8ec714..4e1bb78b467 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,11 @@ +2014-08-19 Andreas Tobler + + * 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 * configure: Regenerate. diff --git a/gas/Makefile.am b/gas/Makefile.am index 5727c75fbc0..972d379ffcc 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -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 \ diff --git a/gas/Makefile.in b/gas/Makefile.in index be2711b65a9..f42df8368e9 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -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 index 00000000000..8a72e21bf3b --- /dev/null +++ b/gas/config/te-armfbsdeabi.h @@ -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 index 00000000000..945ac7c4496 --- /dev/null +++ b/gas/config/te-armfbsdvfp.h @@ -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 diff --git a/gas/configure.tgt b/gas/configure.tgt index 9319d33580c..4b789085ce9 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -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 ;; -- 2.30.2