binutils-gdb/include/elf
Nelson Chu 8155b8539b RISC-V: Support STO_RISCV_VARIANT_CC and DT_RISCV_VARIANT_CC.
This is the original discussion,
https://github.com/riscv/riscv-elf-psabi-doc/pull/190

And here is the glibc part,
https://sourceware.org/pipermail/libc-alpha/2021-August/129931.html

For binutils part, we need to support a new direcitve: .variant_cc.
The function symbol marked by .variant_cc means it need to be resolved
directly without resolver for dynamic linker.  We also add a new dynamic
entry, STO_RISCV_VARIANT_CC, to indicate there are symbols with the
special attribute in the dynamic symbol table of the object.

I heard that llvm already have supported this in their mainline, so
I think it's time to commit this.

bfd/
	* elfnn-riscv.c (riscv_elf_link_hash_table): Added variant_cc
	flag. It is used to check if relocations for variant CC symbols
	may be present.
	(allocate_dynrelocs): If the symbol has STO_RISCV_VARIANT_CC
	flag, then raise the variant_cc flag of riscv_elf_link_hash_table.
	(riscv_elf_size_dynamic_sections): Added dynamic entry for
	variant_cc.
	(riscv_elf_merge_symbol_attribute): New function, used to merge
	non-visibility st_other attributes, including STO_RISCV_VARIANT_CC.
binutils/
	* readelf.c (get_riscv_dynamic_type): New function.
	(get_dynamic_type): Called get_riscv_dynamic_type for riscv targets.
	(get_riscv_symbol_other): New function.
	(get_symbol_other): Called get_riscv_symbol_other for riscv targets.
gas/
	* config/tc-riscv.c (s_variant_cc): Marked symbol that it follows a
	variant CC convention.
	(riscv_elf_copy_symbol_attributes): Same as elf_copy_symbol_attributes,
	but without copying st_other.  If a function symbol has special st_other
	value set via directives, then attaching an IFUNC resolver to that symbol
	should not override the st_other setting.
	(riscv_pseudo_table): Support variant_cc diretive.
	* config/tc-riscv.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Defined.
	* testsuite/gas/riscv/variant_cc-set.d: New testcase.
	* testsuite/gas/riscv/variant_cc-set.s: Likewise.
	* testsuite/gas/riscv/variant_cc.d: Likewise.
	* testsuite/gas/riscv/variant_cc.s: Likewise.
include/
	* elf/riscv.h (DT_RISCV_VARIANT_CC): Defined to (DT_LOPROC + 1).
	(STO_RISCV_VARIANT_CC): Defined to 0x80.
ld/
	* testsuite/ld-riscv-elf/variant_cc-1.s: New testcase.
	* testsuite/ld-riscv-elf/variant_cc-2.s: Likewise.
	* testsuite/ld-riscv-elf/variant_cc-now.d: Likewise.
	* testsuite/ld-riscv-elf/variant_cc-r.d: Likewise.
	* testsuite/ld-riscv-elf/variant_cc-shared.d: Likewise.
	* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
2021-11-19 09:32:19 +08:00
..
aarch64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
alpha.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc-cpu.def Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc-reloc.def Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
arm.h arm: add armv9-a architecture to -march 2021-11-01 10:51:03 +00:00
avr.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bfin.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
bpf.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ChangeLog-0415
ChangeLog-9103
common.h readelf: Support SHT_RELR/DT_RELR for -r 2021-11-16 13:04:33 -08:00
cr16.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
cris.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
crx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
csky.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
d10v.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
d30v.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
dlx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
dwarf.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
epiphany.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
external.h readelf: Support SHT_RELR/DT_RELR for -r 2021-11-16 13:04:33 -08:00
fr30.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
frv.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ft32.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
h8.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
hppa.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i370.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i386.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i860.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
i960.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ia64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
internal.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ip2k.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
iq2000.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
lm32.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
loongarch.h LoongArch bfd support 2021-10-24 21:36:31 +10:30
m32c.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
m32r.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
m68hc11.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
m68k.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mcore.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mep.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
metag.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
microblaze.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mips.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mmix.h Use bool in include 2021-03-31 10:49:23 +10:30
mn10200.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mn10300.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
moxie.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
msp430.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
mt.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
nds32.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
nfp.h Remove bfd_stdint.h 2021-03-31 10:49:23 +10:30
nios2.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
or1k.h or1k: Implement relocation R_OR1K_GOT_AHI16 for gotha() 2021-05-06 20:51:24 +09:00
pj.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
ppc64.h PowerPC64 @notoc in non-power10 code 2021-11-15 12:20:13 +10:30
ppc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
pru.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
reloc-macros.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
riscv.h RISC-V: Support STO_RISCV_VARIANT_CC and DT_RISCV_VARIANT_CC. 2021-11-19 09:32:19 +08:00
rl78.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
rx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
s12z.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
s390.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
score.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
sh.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
sparc.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
spu.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
tic6x-attrs.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
tic6x.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
tilegx.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
tilepro.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
v850.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
vax.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
visium.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
vxworks.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
wasm32.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
x86-64.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xc16x.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xgate.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xstormy16.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30
xtensa.h Use bool in include 2021-03-31 10:49:23 +10:30
z80.h Update year range in copyright notice of binutils files 2021-01-01 10:31:05 +10:30