Skip to content

Commit 66b1970

Browse files
[FMV] Change the default versions name mangling. (#277)
1 parent 96281bf commit 66b1970

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

main/acle.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ Armv8.4-A [[ARMARMv84]](#ARMARMv84). Support is added for the Dot Product intrin
366366
feature names are appended in lexicographic order, not in priority order.
367367
* Mangled names contain a unique set of features (no duplicates).
368368
* Added [MOPS](#memcpy-family-of-operations-intrinsics---mops).
369+
* Change name mangling of the default version.
369370
* Align priorities to account for feature dependencies.
370371
* Introduce alternative names (aliases) `rdma` for `rdm`.
371372
* Correct FEAT_BTI feature register value.
@@ -2514,8 +2515,10 @@ compiler and it is enabled.
25142515

25152516
### Name mangling
25162517

2517-
The `"default"` version is not mangled on top of the language-specific name
2518-
mangling.
2518+
The `"default"` version is mangled with `".default"` on top of the
2519+
language-specific name mangling. All versioned functions with their mangled names
2520+
are always resolvable.
2521+
A function is expected to be resolvable with the original mangled name of the function.
25192522

25202523
The mangling function is compatible with the mangling for version information of
25212524
the [[cxxabi]](#cxxabi), and it is defined as follows:
@@ -2535,9 +2538,9 @@ For example:
25352538
__attribute__((target_clones("crc32", "aes+sha1")))
25362539
int foo(){..}
25372540
```
2538-
will produce these mangled names for C language: `foo`, `foo._Mcrc32`,
2539-
`foo._MaesMsha1`.
2540-
2541+
will produce these mangled names for C language: `foo.default`, `foo._Mcrc32`,
2542+
`foo._MaesMsha1` while `foo` is a callable external symbol which leads to one
2543+
of the versioned functions.
25412544

25422545
### Mapping
25432546

0 commit comments

Comments
 (0)