RISC-V: Support for FreeBSD.
gcc/ * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. * config/riscv/freebsd.h: New. libgcc/ * config.host (riscv*-*-freebsd*): Add RISC-V FreeBSD support. From-SVN: r259190
This commit is contained in:
parent
e889aa0a96
commit
4d47fe5a8f
@ -1,3 +1,9 @@
|
||||
2018-04-06 Ruslan Bukin <br@bsdpad.com>
|
||||
Kito Cheng <kito.cheng@gmail.com>
|
||||
|
||||
* config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
|
||||
* config/riscv/freebsd.h: New.
|
||||
|
||||
2018-04-06 Chung-Ju Wu <jasonwucj@gmail.com>
|
||||
|
||||
* config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
|
||||
@ -10043,4 +10049,6 @@
|
||||
|
||||
Copyright (C) 2018 Free Software Foundation, Inc.
|
||||
|
||||
Copying and distribu
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
@ -2089,6 +2089,15 @@ riscv*-*-elf* | riscv*-*-rtems*)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
riscv*-*-freebsd*)
|
||||
tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h"
|
||||
tmake_file="${tmake_file} riscv/t-riscv"
|
||||
gnu_ld=yes
|
||||
gas=yes
|
||||
# Force .init_array support. The configure script cannot always
|
||||
# automatically detect that GAS supports it, yet we require it.
|
||||
gcc_cv_initfini_array=yes
|
||||
;;
|
||||
mips*-*-netbsd*) # NetBSD/mips, either endian.
|
||||
target_cpu_default="MASK_ABICALLS"
|
||||
tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h"
|
||||
|
54
gcc/config/riscv/freebsd.h
Normal file
54
gcc/config/riscv/freebsd.h
Normal file
@ -0,0 +1,54 @@
|
||||
/* Definitions for RISC-V FreeBSD systems with ELF format.
|
||||
Copyright (C) 2018 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GCC.
|
||||
|
||||
GCC 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.
|
||||
|
||||
GCC 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 GCC; see the file COPYING3. If not see
|
||||
<http://www.gnu.org/licenses/>. */
|
||||
|
||||
#undef WCHAR_TYPE
|
||||
#define WCHAR_TYPE "int"
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE 32
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time.
|
||||
|
||||
When the -shared link option is used a final link is not being
|
||||
done. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC " \
|
||||
-melf" XLEN_SPEC "lriscv \
|
||||
%{p:%nconsider using `-pg' instead of `-p' with gprof (1) } \
|
||||
%{v:-V} \
|
||||
%{assert*} %{R*} %{rpath*} %{defsym*} \
|
||||
%{shared:-Bshareable %{h*} %{soname*}} \
|
||||
%{symbolic:-Bsymbolic} \
|
||||
%{static:-Bstatic} \
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
-dynamic-linker " FBSD_DYNAMIC_LINKER "} \
|
||||
%{static:-static}}"
|
@ -1,3 +1,7 @@
|
||||
2018-04-06 Ruslan Bukin <br@bsdpad.com>
|
||||
|
||||
* config.host (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
|
||||
|
||||
2018-03-29 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR target/85100
|
||||
|
@ -1128,6 +1128,10 @@ riscv*-*-linux*)
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
|
||||
md_unwind_header=riscv/linux-unwind.h
|
||||
;;
|
||||
riscv*-*-freebsd*)
|
||||
tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o crtendS.o crtbeginT.o"
|
||||
;;
|
||||
riscv*-*-*)
|
||||
tmake_file="${tmake_file} riscv/t-softfp${host_address} t-softfp riscv/t-elf riscv/t-elf${host_address}"
|
||||
extra_parts="$extra_parts crtbegin.o crtend.o crti.o crtn.o"
|
||||
|
Loading…
x
Reference in New Issue
Block a user