Skip to content

Commit d72db56

Browse files
authored
Merge pull request #372 from riscv-non-isa/mapping-symbol-uniquifier
Allow optional uniquifier for mapping symbol
2 parents 9401f64 + 46fc7e4 commit d72db56

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

riscv-elf.adoc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,9 +1185,12 @@ A number of symbols, named mapping symbols, describe the boundaries.
11851185
[%autowidth]
11861186
|===
11871187
| Symbol Name | Meaning
1188-
| $d | Start of a sequence of data.
1189-
| $x | Start of a sequence of instructions.
1190-
| $x<ISA> | Start of a sequence of instructions with <ISA> extension.
1188+
| $d .2+| Start of a sequence of data.
1189+
| $d.<any>
1190+
| $x .2+| Start of a sequence of instructions.
1191+
| $x.<any>
1192+
| $x<ISA> .2+| Start of a sequence of instructions with <ISA> extension.
1193+
| $x<ISA>.<any>
11911194
|===
11921195

11931196
The mapping symbol should set the type to `STT_NOTYPE`, binding to `STB_LOCAL`,
@@ -1206,6 +1209,9 @@ from ELF attribute.
12061209
Format and rule of the optional ISA string are same as `Tag_RISCV_arch`, must
12071210
having explicit version, more detailed rule please refer to <<Attributes>>.
12081211

1212+
The mapping symbol can be followed by an optional uniquifier, which is prefixed
1213+
with a dot (`.`).
1214+
12091215
NOTE: The use case for mapping symbol for instruction(`$x`) with ISA information
12101216
is used with ifunc, e.g. libraries are built with `rv64gc`, but few functions
12111217
like memcpy provides two versions, one built with `rv64gc`, and one built with

0 commit comments

Comments
 (0)