Skip to content

Commit edb63fb

Browse files
committed
Non-functional changes to content of commits made since last release
These are minor grammatical and style changes to commits since the 2025Q1 release. They should not change the meaning of what is in the documents.
1 parent 1d6cf2e commit edb63fb

File tree

7 files changed

+50
-44
lines changed

7 files changed

+50
-44
lines changed

aadwarf64/aadwarf64.rst

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -638,13 +638,14 @@ The ``DW_CFA_AARCH64_negate_ra_state`` instruction toggles between the
638638
``DW_AARCH64_RA_NOT_SIGNED`` and ``DW_AARCH64_RA_SIGNED_SP`` return address
639639
states in RA_SIGN_STATE pseudo-register. It does not take any operands.
640640

641-
The ``DW_CFA_AARCH64_set_ra_state`` instruction takes two operands: an unsigned
642-
LEB128 value representing a return address state ra_state; and a signed LEB128
643-
factored offset. The required action is to set the RA_SIGN_STATE pseudo-register
644-
to the ra_state value and if the ra_state value is ``DW_AARCH64_RA_SIGNED_SP_PC``
645-
to capture the current code location + (offset * ``code_alignment_factor``)
646-
as the signing/authenticating PAC instruction, otherwise it is has the value 0.
647-
The code location information can be used for authenticating the return address.
641+
The `DW_CFA_AARCH64_set_ra_state` instruction takes two operands. The first is
642+
an unsigned LEB128 value that specifies the return address state ra_state. The
643+
second is a signed LEB128 factored offset. The instruction sets the
644+
`RA_SIGN_STATE` pseudo-register to the ra_state value. If the ra_state value is
645+
`DW_AARCH64_RA_SIGNED_SP_PC`, it records the current code location + (offset *
646+
``code_alignment_factor``) as the signing/authenticating PAC instruction,
647+
otherwise it is 0. The code location information can be used to authenticate the
648+
return address.
648649

649650
The ``DW_CFA_AARCH64_negate_ra_state_with_pc`` instruction toggles between the
650651
``DW_AARCH64_RA_NOT_SIGNED`` and ``DW_AARCH64_RA_SIGNED_SP_PC`` return

aaelf64-morello/aaelf64-morello.rst

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ space reserved by [CHERI_ELF_] for processor-specific use:
318318
.. note::
319319

320320
Mixing any combination of two or more of CHERI_TLS_ABI_TRAD,
321-
CHERI_TLS_ABI_MORELLO_MIXED and CHERI_TLS_ABI_MORELLO_TGOT_COMPAT objects is
321+
CHERI_TLS_ABI_MORELLO_MIXED, and CHERI_TLS_ABI_MORELLO_TGOT_COMPAT objects is
322322
permitted, and yields a CHERI_TLS_ABI_MORELLO_MIXED object if merged at
323323
static link time.
324324

@@ -905,7 +905,7 @@ Dynamic Morello relocations
905905

906906
``R_MORELLO_TLS_TGOT_SLOT`` is similar to ``R_MORELLO_CAPINIT`` but should
907907
not be applied to the TGOT template itself. Instead, represents
908-
initialisation to be performed per TGOT. If ``S`` is the null symbol (ELF
908+
initialization to be performed per TGOT. If ``S`` is the null symbol (ELF
909909
symbol index 0), it contains a fragment in the same format as
910910
``R_MORELLO_RELATIVE``.
911911

@@ -1030,7 +1030,7 @@ A Morello toolchain can emit segments in accordance to [CHERI_ELF_]. The
10301030
following fields have Morello-specific meanings.
10311031

10321032
p\_type
1033-
The below table lists the Morello-specific segment types.
1033+
The following table lists the Morello-specific segment types.
10341034

10351035
.. table:: Morello-specific segment types
10361036

@@ -1283,7 +1283,7 @@ TLS for the pure capability ABI (indirect)
12831283
------------------------------------------
12841284

12851285
The design is based on TLSDESC, using a TGOT (as described in [CHERI_ELF_]) for
1286-
indirection to minimise privilege and enable compartmentalisation.
1286+
indirection to minimise privilege and enable compartmentalization.
12871287

12881288
TLS static block
12891289
^^^^^^^^^^^^^^^^
@@ -1329,7 +1329,7 @@ Local Exec
13291329

13301330
The capability to the TLS variable is loaded from ``CTPIDR_EL0``. There are no
13311331
requirements on how this is performed or the registers used, except that the
1332-
sequence doesn't produce a dynamic relocation. A possible instruction sequence
1332+
sequence does not produce a dynamic relocation. A possible instruction sequence
13331333
could be:
13341334

13351335
.. code-block:: text
@@ -1420,13 +1420,13 @@ The relaxed sequence is:
14201420
TLS for the pure capability ABI (mixed / compat)
14211421
------------------------------------------------
14221422

1423-
In order to support transitioning from direct to indirect TLS, both can be used
1424-
at once. In this mixed model, direct TLS is entirely as defined above. However,
1425-
for indirect TLS, a "compat" model is used, where the location of the static
1426-
TGOT within the static TLS block is unspecified. This has the following
1427-
implications:
1423+
To support transitioning from direct to indirect TLS, they can be used
1424+
together. In this mixed model, direct TLS is entirely as defined in the `TLS for
1425+
the pure capability ABI (direct)`_ section. However, for indirect TLS, a
1426+
"compat" model is used, where the location of the static TGOT within the static
1427+
TLS block is unspecified. This has the following implications:
14281428

1429-
- Local Exec is forbidden (including for relaxation); the most optimised access
1429+
- Local Exec is forbidden (including for relaxation); the most optimized access
14301430
model available is Initial Exec
14311431

14321432
- ``R_MORELLO_TLS_TGOTREL64`` is never statically resolvable to a constant at

aaelf64/aaelf64.rst

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,8 @@ changes to the content of the document for that release.
292292
| 2025Q2 | 9\ :sup:`th` | - In `Call and Jump relocations`_ added |
293293
| | April 2025 | static linker requirements on veneers |
294294
| | | when BTI guarded pages are used. |
295-
| | | - Added section for structure protection|
296-
| | | extension relocations. |
295+
| | | - Added section for Structure Protection|
296+
| | | Extension relocations. |
297297
| | | - R_AARCH64_GOTPCREL32, clarify addend |
298298
+---------------+--------------------+-----------------------------------------+
299299
| 2026Q1 | 12\ :sup:`th` | - R_AARCH64_TLS_DTPREL can be used as a |
@@ -1751,10 +1751,14 @@ A data relocation is required to describe the location of a TLS variable in debu
17511751
| | | R\_<CLS>\_TLS\_DTPREL | DTPREL(S+A) | See note below |
17521752
+------------+------------+-----------------------------+------------------------------------+-------------------------------------------+
17531753

1754-
``R_<CLS>_TLS_DTPREL`` is both a static and dynamic relocation. When used as a static relocation ``S`` must be fully resolved at static link time to a symbol definition in the same module as the relocation.
1755-
17561754
It is implementation defined whether ``R_<CLS>_TLS_IMPDEF1`` implements ``R_<CLS>_TLS_DTPREL`` and ``R_<CLS>_TLS_IMPDEF2`` implements ``R_<CLS>_TLS_DTPMOD`` or whether ``R_<CLS>_TLS_IMPDEF1`` implements ``R_<CLS>_TLS_DTPMOD`` and ``R_<CLS>_TLS_IMPDEF2`` implements ``R_<CLS>_TLS_DTPREL``; a platform must document its choice\ [#aaelf64-f1]_.
17571755

1756+
.. note::
1757+
``R_<CLS>_TLS_DTPREL`` is both a static and dynamic relocation. When used as
1758+
a static relocation ``S`` must be fully resolved at static link time to a
1759+
symbol definition in the same module as the relocation.
1760+
1761+
17581762
Relocations for PAuth ABI Extension
17591763
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17601764

atomicsabi64/atomicsabi64.rst

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,12 @@ Suggestions and improvements to this specification may be submitted to the:
382382
Atomic types
383383
============
384384

385-
``_Atomic`` struct types types with size less than 16 bytes must be padded to the nearest power
386-
of 2. Their alignment must be the same as their size so that they can be used by atomic instructions.
385+
``_Atomic`` struct types with size less than 16 bytes must be padded to the
386+
nearest power of 2. Their alignment must be the same as their size so that they
387+
can be used by atomic instructions.
387388

388-
``atomic_is_lock_free`` must return ``true`` for all ``_Atomic`` objects with size less than or equal
389-
to 16 bytes, and ``false`` otherwise.
389+
``atomic_is_lock_free`` must return ``true`` for all ``_Atomic`` objects with
390+
size less than or equal to 16 bytes, and ``false`` otherwise.
390391

391392

392393
AArch64 atomic mappings

baabielf64/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66

77
## About this document
88

9-
The [AArch64 ELF Conventions for Binary Analysis](baabielf64.rst) specifies code-patterns recognised by Binary Analysis tools.
9+
The [AArch64 ELF Conventions for Binary Analysis](baabielf64.rst) specifies code
10+
patterns recognized by Binary Analysis tools.
1011

1112
## About the license
1213

baabielf64/baabielf64.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ changes to the content of the document for that release.
191191
+------------+------------------------------+------------------------------------------------------------------+
192192
| Issue | Date | Change |
193193
+============+==============================+==================================================================+
194-
| 0.1 | 10\ :sup:`st` September 2025 | Alpha draft release. |
194+
| 0.1 | 10\ :sup:`th` September 2025 | Alpha draft release. |
195195
+------------+------------------------------+------------------------------------------------------------------+
196196

197197
References
@@ -232,7 +232,7 @@ Other terms may be defined when first used.
232232
AArch64 Veneer Types Recognized by Binary Analysis Tools
233233
========================================================
234234

235-
As described in AAELF64_, section Call and Jump relocations, the linker may insert veneers (also referred to as thunks, stubs or trampolines) to implement call and jump relocations. This section defines the commonly used types and instruction sequences for such veneers on AArch64, enabling better recognition by binary analysis tools.
235+
As described in AAELF64_, section Call and Jump relocations, the linker may insert veneers (also referred to as thunks, stubs, or trampolines) to implement call and jump relocations. This section defines the commonly used types and instruction sequences for such veneers on AArch64, enabling better recognition by binary analysis tools.
236236

237237
Toolchains are encouraged to follow these patterns to ensure veneers can be reliably recognized during binary analysis. These pattern sets are intended to remain open, and toolchains may introduce new veneer forms.
238238

@@ -346,4 +346,4 @@ In cases where the veneer is placed immediately before the target, the B instruc
346346
BTI C
347347
<target>:
348348

349-
Recognized by alternative names: ``__<target>_bti_veneer``
349+
Recognized by alternative names: ``__<target>_bti_veneer``

sysvabi64/sysvabi64.rst

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -213,10 +213,10 @@ Change History
213213
| 2025Q1 | 7\ :sup:`th` April 2025 | - Require hard-float ABI for sysvabi platforms. |
214214
| | | - Document requirements for tools wrt BTI. |
215215
+------------+------------------------------+-------------------------------------------------------+
216-
| 2025Q2 | 20\ :sup:`th` June 2024 | Require that ``PT_GNU_PROPERTY`` program header be |
216+
| 2025Q2 | 20\ :sup:`th` June 2024 | Require that ``PT_GNU_PROPERTY`` program header is |
217217
| | | present in executables and shared-libraries if a |
218-
| | | .note.gnu.property section is present. |
219-
| | | - Update distance to GOT for small code-model |
218+
| | | ``.note.gnu.property`` section is present. |
219+
| | | - Update distance to GOT for small code model |
220220
+------------+------------------------------+-------------------------------------------------------+
221221
| 2026Q1 | 12\ :sup:`th` January 2026 | Add assembler conventions for data directive |
222222
| | | relocation expressions. |
@@ -862,7 +862,7 @@ Sample code sequences for code models
862862

863863
The following section provide some sample code sequences for
864864
addressing static data. The samples are provided to illustrate the
865-
effects on code-generation of the code-models.
865+
effects on code-generation of the code models.
866866

867867
Get the address of a symbol defined in the same ELF file
868868
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -1617,23 +1617,22 @@ IFUNC requirements for dynamic linkers
16171617
To resolve an ``R_AARCH64_IRELATIVE`` relocation the dynamic linker
16181618
performs the calculation described in AAELF64_ Dynamic Relocations.
16191619

1620-
Function Multi-versioning
1620+
Function Multi-Versioning
16211621
-------------------------
16221622

1623-
Function Multi-versioning (FMV) is an Arm C Language Extension that
1623+
Function Multi-Versioning (FMV) is an Arm C Language Extension that
16241624
lets the compiler generate multiple function versions and auto-dispatch
16251625
between them. Each of the function versions is specialized for a set
16261626
of architecture extensions. The most suitable version is selected
16271627
at load time. This requires runtime information about the CPU features
16281628
available on the host. FMV is supported on GNU/Linux, Android, and
16291629
many of the BSD operating systems.
16301630

1631-
On System V platforms Function Multi-versioning is implemented using
1632-
GNU Indirect Functions (IFUNC). The compiler generated IFUNC resolver
1633-
may rely on the presence of a global variable ``__aarch64_cpu_features``
1634-
provided by the runtime library. It contains information about the
1635-
available CPU features. The runtime library must also provide a
1636-
function ``__init_cpu_features_resolver`` that the IFUNC resolver
1631+
On System V platforms FMV is implemented using GNU Indirect Functions
1632+
(IFUNC). The compiler generated IFUNC resolver may rely on the presence of a
1633+
global variable ``__aarch64_cpu_features`` provided by the runtime library. It
1634+
contains information about the available CPU features. The runtime library must
1635+
also provide a function ``__init_cpu_features_resolver`` that the IFUNC resolver
16371636
can call to initialize ``__aarch64_cpu_features``.
16381637

16391638
.. code-block:: c
@@ -1763,7 +1762,7 @@ prototype:
17631762
17641763
void __init_cpu_features_resolver (uint64_t, const uint64_t *);
17651764
1766-
The above interface expects the same parameters as a GNU Indirect
1765+
This interface expects the same parameters as a GNU Indirect
17671766
Function resolver. See `GNU C Library IFUNC interface`_. Other
17681767
platforms may use a different interface with the runtime library.
17691768
However, all implementations must provide a DSO-local definition
@@ -1878,7 +1877,7 @@ include:
18781877
means that RET instructions are only used for function returns, and
18791878
never as an indirect branch.
18801879

1881-
* Any functions used by the program that manipulate the stack such as
1880+
* Any functions used by the program that manipulate the stack, such as
18821881
``setjmp`` and ``longjmp``, must be aware of GCS.
18831882

18841883
Program Properties and program headers

0 commit comments

Comments
 (0)