binutils-gdb/bfd
Andrew Waterman 2922d21da1 Re-work RISC-V gas flags: now we just support -mabi and -march
We've decided to standardize on two flags for RISC-V: "-march" sets the
target architecture (which determines which instructions can be
generated), and "-mabi" sets the target ABI.  We needed to rework this
because the old flag set didn't support soft-float or single-float ABIs,
and didn't support an x32-style ABI on RISC-V.

Additionally, we've changed the behavior of the -march flag: it's now a
lot stricter and only parses things we can actually understand.
Additionally, it's now lowercase-only: the rationale is that while the
RISC-V ISA manual specifies that ISA strings are case-insensitive, in
Linux-land things are usually case-sensitive.  Since this flag can be
used to determine library paths, we didn't want to bake some
case-insensitivity in there that would case trouble later.

This patch implements these two new flags and removes the old flags that
could conflict with these.  There wasn't a RISC-V release before, so we
want to just support a clean flag set.

include/
	* elf/riscv.h (EF_RISCV_SOFT_FLOAT): Don't define.
	(EF_RISCV_FLOAT_ABI, EF_RISCV_FLOAT_ABI_SOFT): Define.
	(EF_RISCV_FLOAT_ABI_SINGLE, EF_RISCV_FLOAT_ABI_DOUBLE): Define.
	(EF_RISCV_FLOAT_ABI_QUAD): Define.
bfd/
	* elfnn-riscv.c (_bfd_riscv_elf_merge_private_bfd_data): Use
	EF_RISCV_FLOAT_ABI_SOFT instead of EF_RISCV_SOFT_FLOAT.
binutils/
	* readelf.c (get_machine_flags): Use
	EF_RISCV_FLOAT_ABI_{SOFT,SINGLE,DOBULE,QUAD) instead of
	EF_RISCV_{SOFT,HARD}_FLOAT.
gas/
	* config/tc-riscv.h (xlen): Delete.
	* config/tc-riscv.c (xlen): Make static.
	(abi_xlen): New variable.
	(options): Replace OPTION_{M32,M64,MSOFT_FLOAT,MHARD_FLOAT,MRVC}
	with OPTION_MABI.
	(md_longopts): Likewise.
	(md_parse_option): Likewise.
	(riscv_elf_final_processing): Likewise.
	* doc/as.texinfo (Target RISC-V options): Likewise.
	* doc/c-riscv.texi (OPTIONS): Likewise.
	* config/tc-riscv.c (float_mode): Removed.
	(float_abi): New type, specifies the floating-point ABI.
	(riscv_set_abi): New function.
	(riscv_add_subset): Only allow lower-case ISA names and require
	them to start with "rv".
	(riscv_after_parse_args): Likewise.
opcodes/
	* riscv-dis.c (riscv_disassemble_insn): Default to the ELF's
	XLEN when none is provided.
2016-12-20 12:26:34 +10:30
..
doc
hosts
po Regen POTFILES.in 2016-11-23 15:06:10 +10:30
.gitignore
acinclude.m4
aclocal.m4
aix5ppc-core.c
aix386-core.c
aout0.c
aout32.c
aout64.c
aout-adobe.c
aout-arm.c
aout-cris.c
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
aoutf1.h
aoutx.h Fix seg-fault running strip on a corrupt binary. 2016-12-06 15:58:15 +00:00
arc-got.h
arc-plt.def
arc-plt.h
archive64.c
archive.c
archures.c
armnetbsd.c
bfd-in2.h Rework RISC-V relocations 2016-12-20 12:26:33 +10:30
bfd-in.h MIPS/opcodes: Also set disassembler's ASE flags from ELF structures 2016-12-14 22:12:21 +00:00
bfd.c
bfd.m4
bfdio.c
bfdwin.c
binary.c
bout.c
cache.c
cf-i386lynx.c
cf-sparclynx.c
ChangeLog Re-work RISC-V gas flags: now we just support -mabi and -march 2016-12-20 12:26:34 +10:30
ChangeLog-0001
ChangeLog-0203
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-9193
ChangeLog-9495
ChangeLog-9697
ChangeLog-9899
cisco-core.c
coff64-rs6000.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
coff-bfd.c
coff-bfd.h
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
coff-ia64.c
coff-m68k.c
coff-m88k.c
coff-mcore.c
coff-mips.c
coff-ppc.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
coff-tic4x.c
coff-tic30.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-x86_64.c
coff-z8k.c
coff-z80.c
coffcode.h
coffgen.c
cofflink.c
coffswap.h
compress.c
config.bfd Add support for Fushia OS. 2016-12-02 10:44:29 +00:00
config.in
configure Fix spelling mistakes in comments in configure scripts 2016-11-22 15:43:03 +00:00
configure.ac Fix spelling mistakes in comments in configure scripts 2016-11-22 15:43:03 +00:00
configure.com
configure.host
COPYING
corefile.c
cpu-aarch64.c Revert "bfd: aarch64: fix word and arrdess size declaration in ilp32 mode" 2016-12-14 11:57:42 +05:30
cpu-alpha.c
cpu-arc.c
cpu-arm.c
cpu-avr.c
cpu-bfin.c
cpu-cr16.c
cpu-cr16c.c
cpu-cris.c
cpu-crx.c
cpu-d10v.c
cpu-d30v.c
cpu-dlx.c
cpu-epiphany.c
cpu-fr30.c
cpu-frv.c
cpu-ft32.c
cpu-h8300.c
cpu-h8500.c
cpu-hppa.c
cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
cpu-ia64-opc.c
cpu-ia64.c
cpu-iamcu.c
cpu-ip2k.c
cpu-iq2000.c
cpu-k1om.c
cpu-l1om.c
cpu-lm32.c
cpu-m9s12x.c
cpu-m9s12xg.c
cpu-m32c.c
cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c
cpu-m88k.c
cpu-m10200.c
cpu-m10300.c
cpu-mcore.c
cpu-mep.c
cpu-metag.c
cpu-microblaze.c
cpu-mips.c
cpu-mmix.c
cpu-moxie.c
cpu-msp430.c
cpu-mt.c
cpu-nds32.c
cpu-nios2.c
cpu-ns32k.c
cpu-or1k.c
cpu-pdp11.c
cpu-pj.c
cpu-plugin.c
cpu-powerpc.c
cpu-riscv.c
cpu-rl78.c
cpu-rs6000.c
cpu-rx.c
cpu-s390.c
cpu-score.c
cpu-sh.c
cpu-sparc.c
cpu-spu.c
cpu-tic4x.c
cpu-tic6x.c
cpu-tic30.c
cpu-tic54x.c
cpu-tic80.c
cpu-tilegx.c
cpu-tilepro.c
cpu-v850_rh850.c
cpu-v850.c
cpu-vax.c
cpu-visium.c
cpu-w65.c
cpu-we32k.c
cpu-xc16x.c
cpu-xgate.c
cpu-xstormy16.c
cpu-xtensa.c
cpu-z8k.c
cpu-z80.c
demo64.c
dep-in.sed
development.sh
dwarf1.c
dwarf2.c BFD/DWARF2: Correct an `index' global shadowing error 2016-11-21 16:38:08 +00:00
ecoff.c
ecofflink.c
ecoffswap.h
elf32-am33lin.c
elf32-arc.c Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elf32-arm.c bfd/elf32-arm.c: Rename 'popcount' to 'elf32_arm_popcount' 2016-12-19 14:03:26 +01:00
elf32-avr.c
elf32-avr.h
elf32-bfin.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-cr16.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-cr16c.c
elf32-cris.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-crx.c
elf32-d10v.c
elf32-d30v.c
elf32-dlx.c
elf32-dlx.h
elf32-epiphany.c
elf32-fr30.c
elf32-frv.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-ft32.c
elf32-gen.c
elf32-h8300.c
elf32-hppa.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-hppa.h
elf32-i370.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-i386.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-i860.c
elf32-i960.c
elf32-ip2k.c
elf32-iq2000.c
elf32-lm32.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-m32c.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-m32r.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-m68hc1x.c
elf32-m68hc1x.h
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68k.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-m88k.c
elf32-mcore.c
elf32-mep.c
elf32-metag.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-metag.h
elf32-microblaze.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-mips.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-moxie.c
elf32-msp430.c
elf32-mt.c
elf32-nds32.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-nds32.h Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-nios2.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-nios2.h
elf32-or1k.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-pj.c
elf32-ppc.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-ppc.h PR20744, Incorrect PowerPC VLE relocs 2016-11-22 20:19:29 +10:30
elf32-rl78.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-rx.c Don't fudge p_vaddr when PHDR in segment 2016-12-13 09:37:37 +10:30
elf32-rx.h
elf32-s390.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-score7.c Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elf32-score.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-score.h
elf32-sh64-com.c
elf32-sh64.c
elf32-sh64.h
elf32-sh-relocs.h
elf32-sh-symbian.c
elf32-sh.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-sparc.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-spu.c
elf32-spu.h
elf32-tic6x.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-tic6x.h
elf32-tilegx.c
elf32-tilegx.h
elf32-tilepro.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-tilepro.h
elf32-v850.c
elf32-vax.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32-visium.c
elf32-xc16x.c
elf32-xgate.c
elf32-xgate.h
elf32-xstormy16.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf32-xtensa.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf32.c
elf64-alpha.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf64-gen.c
elf64-hppa.c Don't add PHDR for objcopy/strip or ld script specifying PHDRS 2016-12-13 09:37:59 +10:30
elf64-hppa.h
elf64-ia64-vms.c
elf64-mips.c
elf64-mmix.c
elf64-ppc.c PowerPC64 toc optimisation for power9 2016-12-06 18:25:14 +10:30
elf64-ppc.h PowerPC64 dot-symbol compatibility bugfixes 2016-12-03 21:00:01 +10:30
elf64-s390.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elf64-sh64.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf64-sparc.c
elf64-tilegx.c
elf64-tilegx.h
elf64-x86-64.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elf64.c
elf-attrs.c
elf-bfd.h Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elf-eh-frame.c
elf-hppa.h
elf-ifunc.c
elf-linux-core.h
elf-m10200.c
elf-m10300.c Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elf-nacl.c
elf-nacl.h
elf-s390-common.c
elf-strtab.c
elf-vxworks.c
elf-vxworks.h
elf.c Fix seg-fault in strip when copying a corrupt binary. 2016-12-06 16:53:57 +00:00
elfcode.h Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elfcore.h
elflink.c Implement and document --gc-keep-exported 2016-12-16 13:49:03 +10:30
elfn32-mips.c
elfnn-aarch64.c ld: aarch64: fix TLS relaxation where TCB_SIZE is used 2016-12-14 12:00:59 +05:30
elfnn-ia64.c elf_backend_dtrel_excludes_plt 2016-11-23 15:43:25 +10:30
elfnn-riscv.c Re-work RISC-V gas flags: now we just support -mabi and -march 2016-12-20 12:26:34 +10:30
elfxx-aarch64.c
elfxx-aarch64.h
elfxx-ia64.c
elfxx-ia64.h
elfxx-mips.c MIPS/opcodes: Also set disassembler's ASE flags from ELF structures 2016-12-14 22:12:21 +00:00
elfxx-mips.h
elfxx-riscv.c Rework RISC-V relocations 2016-12-20 12:26:33 +10:30
elfxx-riscv.h
elfxx-sparc.c bfd,ld: Continue after partially-successful relaxed call relocations in sparc. 2016-12-04 22:59:18 -08:00
elfxx-sparc.h
elfxx-target.h Fix the linker so that it will not silently generate ELF binaries with invalid program headers. Fix readelf to report such invalid binaries. 2016-11-23 11:10:39 +00:00
elfxx-tilegx.c Delete duplicate target short-cuts to dynamic sections 2016-11-23 15:34:01 +10:30
elfxx-tilegx.h
epoc-pe-arm.c
epoc-pei-arm.c
format.c
freebsd.h
gen-aout.c
genlink.h
go32stub.h
hash.c
host-aout.c
hp300bsd.c
hp300hpux.c
hppabsd-core.c
hpux-core.c
i386aout.c
i386bsd.c
i386dynix.c
i386freebsd.c
i386linux.c
i386lynx.c
i386mach3.c
i386msdos.c
i386netbsd.c
i386os9k.c
ieee.c
ihex.c
init.c
irix-core.c
libaout.h
libbfd-in.h
libbfd.c
libbfd.h Rework RISC-V relocations 2016-12-20 12:26:33 +10:30
libcoff-in.h
libcoff.h
libecoff.h
libhppa.h
libieee.h
libnlm.h
liboasys.h
libpei.h
libxcoff.h
linker.c
lynx-core.c
m68k4knetbsd.c
m68klinux.c
m68knetbsd.c
m88kmach3.c
m88kopenbsd.c
mach-o-aarch64.c
mach-o-arm.c
mach-o-i386.c
mach-o-target.c
mach-o-x86-64.c
mach-o.c
mach-o.h
MAINTAINERS
Makefile.am
Makefile.in
makefile.vms
mep-relocs.pl
merge.c
mipsbsd.c
mmo.c
netbsd-core.c
netbsd.h
newsos3.c
nlm32-alpha.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
nlm32.c
nlm64.c
nlm-target.h
nlm.c
nlmcode.h
nlmswap.h
ns32k.h
ns32knetbsd.c
oasys.c
opncls.c
osf-core.c
pc532-mach.c
pdp11.c
pe-arm-wince.c
pe-arm.c
pe-i386.c
pe-mcore.c
pe-mips.c
pe-ppc.c
pe-sh.c
pe-x86_64.c
pef-traceback.h
pef.c
pef.h
pei-arm-wince.c
pei-arm.c
pei-i386.c
pei-ia64.c
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
pei-x86_64.c
peicode.h Fix seg-fault in the binutils utilities when reading a corrupt input file. 2016-12-05 16:34:45 +00:00
peXXigen.c Prevent problems with section alignment by not shrinking the .rsrc section. 2016-11-25 09:47:31 +00:00
plugin.c
plugin.h
PORTING
ppcboot.c
ptrace-core.c
README
reloc16.c
reloc.c Rework RISC-V relocations 2016-12-20 12:26:33 +10:30
riscix.c
rs6000-core.c
sco5-core.c
section.c
simple.c
som.c
som.h
sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
stab-syms.c
stabs.c
stamp-h.in
sunos.c
syms.c
sysdep.h
targets.c
targmatch.sed
tekhex.c
TODO
trad-core.c
vax1knetbsd.c
vaxbsd.c
vaxnetbsd.c
verilog.c
versados.c
version.h Automatic date update in version.in 2016-12-20 00:00:32 +00:00
version.m4
vms-alpha.c
vms-lib.c
vms-misc.c
vms.h
warning.m4 Fix spelling mistakes in comments in configure scripts 2016-11-22 15:43:03 +00:00
xcofflink.c
xsym.c
xsym.h
xtensa-isa.c
xtensa-modules.c

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

BFD is an object file library.  It permits applications to use the
same routines to process object files regardless of their format.

BFD is used by the GNU debugger, assembler, linker, and the binary
utilities.

The documentation on using BFD is scanty and may be occasionally
incorrect.  Pointers to documentation problems, or an entirely
rewritten manual, would be appreciated.

There is some BFD internals documentation in doc/bfdint.texi which may
help programmers who want to modify BFD.

BFD is normally built as part of another package.  See the build
instructions for that package, probably in a README file in the
appropriate directory.

BFD supports the following configure options:

  --target=TARGET
	The default target for which to build the library.  TARGET is
	a configuration target triplet, such as sparc-sun-solaris.
  --enable-targets=TARGET,TARGET,TARGET...
	Additional targets the library should support.  To include
	support for all known targets, use --enable-targets=all.
  --enable-64-bit-bfd
	Include support for 64 bit targets.  This is automatically
	turned on if you explicitly request a 64 bit target, but not
	for --enable-targets=all.  This requires a compiler with a 64
	bit integer type, such as gcc.
  --enable-shared
	Build BFD as a shared library.
  --with-mmap
	Use mmap when accessing files.  This is faster on some hosts,
	but slower on others.  It may not work on all hosts.

Report bugs with BFD to bug-binutils@gnu.org.

Patches are encouraged.  When sending patches, always send the output
of diff -u or diff -c from the original file to the new file.  Do not
send default diff output.  Do not make the diff from the new file to
the original file.  Remember that any patch must not break other
systems.  Remember that BFD must support cross compilation from any
host to any target, so patches which use ``#ifdef HOST'' are not
acceptable.  Please also read the ``Reporting Bugs'' section of the
gcc manual.

Bug reports without patches will be remembered, but they may never get
fixed until somebody volunteers to fix them.

Copyright (C) 2012-2016 Free Software Foundation, Inc.

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.