@@ -1355,40 +1355,11 @@ value. After the merge, the resulting value will be the non-zero one.
13551355
13561356=== Program Property
13571357
1358- Program property are used to record information about an object file/binary that
1359- a linker or runtime loader needs to check compatibility.
1358+ Program properties are used to record information about an object file or binary
1359+ that a linker or runtime loader needs to check for compatibility.
13601360
1361- The program property is divided into different classes, each defining a range
1362- of program property types and specifying the merge semantics. This is designed
1363- for forward compatibility in linker implementations, allowing them to correctly
1364- handle program property types even if they are not recognized.
1365-
1366- [[rv-prog-prop-classes]]
1367- .RISC-V-specific program property classes
1368- [cols="3,2,2,5"]
1369- [width=100%]
1370- |===
1371- | Name | Range | Data Type | Merge Semantic
1372-
1373- | UINT32_AND | 0xc0000000 ~ 0xc0007fff | 4-bytes | A bit is set if it is set in all inputs.
1374- | UINT32_OR | 0xc0008000 ~ 0xc000ffff | 4-bytes | A bit is set if it is set in any inputs.
1375- | UINT32_OR_AND | 0xc0010000 ~ 0xc0017fff | 4-bytes | A bit is set if it is set in any inputs and the property is present in all inputs.
1376- |===
1377-
1378- [[rv-prog-prop-class-constants]]
1379- .Constants for RISC-V-specific program property class
1380- [cols="3,2"]
1381- [width=80%]
1382- |===
1383- | Name | Value
1384-
1385- | GNU_PROPERTY_RISCV_UINT32_AND_LO | 0xc0000000
1386- | GNU_PROPERTY_RISCV_UINT32_AND_HI | 0xc0007fff
1387- | GNU_PROPERTY_RISCV_UINT32_OR_LO | 0xc0008000
1388- | GNU_PROPERTY_RISCV_UINT32_OR_HI | 0xc000ffff
1389- | GNU_PROPERTY_RISCV_UINT32_OR_AND_LO | 0xc0010000
1390- | GNU_PROPERTY_RISCV_UINT32_OR_AND_HI | 0xc0017fff
1391- |===
1361+ The linker should ignore and discard unknown bits in program properties, and
1362+ issue warnings or errors.
13921363
13931364=== Mapping Symbol
13941365
0 commit comments