-
Bug
-
Resolution: Unresolved
-
Normal
-
rhel-10.0.beta
-
None
-
None
-
sst_pt_libraries
-
ssg_platform_tools
-
2
-
False
-
-
No
-
None
-
None
-
None
-
Unspecified Release Note Type - Unknown
-
-
aarch64
-
None
Latest build libffi-3.4.4-8.el10 shows an annocheck failure in rpminspect. Complete output:
Command: annocheck --ignore-unknown --verbose --profile=el10 --debug-dir=/usr/lib/debug/ /usr/lib64/libffi.so.8.1.2 Exit Code: 1 annocheck: Version 12.59. Hardened: /usr/lib64/libffi.so.8.1.2: PASS: pie test because the ELF file header has the correct type Hardened: /usr/lib64/libffi.so.8.1.2: info: written in C (source: DW_AT_language string). Hardened: /usr/lib64/libffi.so.8.1.2: PASS: pic test because option found in DW_AT_producer string Hardened: /usr/lib64/libffi.so.8.1.2: PASS: stack-prot test because option found in DW_AT_producer string Hardened: /usr/lib64/libffi.so.8.1.2: PASS: optimization test because option found in DW_AT_producer string Hardened: /usr/lib64/libffi.so.8.1.2: PASS: branch-protection test because correct option found in DW_AT_producer string Hardened: /usr/lib64/libffi.so.8.1.2: PASS: lto test because detected in DW_AT_producer string Hardened: /usr/lib64/libffi.so.8.1.2: info: ALSO written in Assembler (source: DW_AT_language string). Hardened: /usr/lib64/libffi.so.8.1.2: info: Command line options not recorded in DWARF DW_AT_producer variable. Hardened: /usr/lib64/libffi.so.8.1.2: PASS: writable-got test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: dynamic-segment test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: bind-now test Hardened: /usr/lib64/libffi.so.8.1.2: FAIL: dynamic-tags test because the BTI_PLT flag is missing from the dynamic tags Hardened: /usr/lib64/libffi.so.8.1.2: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-dynamic-tags.html Hardened: /usr/lib64/libffi.so.8.1.2: PASS: gnu-stack test because stack segment exists with the correct permissions Hardened: /usr/lib64/libffi.so.8.1.2: PASS: gnu-relro test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: notes test because annobin notes found in the .annobin.notes section Hardened: /usr/lib64/libffi.so.8.1.2: skip: warnings test because LTO compilation discards preprocessor options Hardened: /usr/lib64/libffi.so.8.1.2: skip: implicit-values test because -Wimplicit-int setting is hidden by LTO Hardened: /usr/lib64/libffi.so.8.1.2: skip: fortify test because LTO compilation discards preprocessor options Hardened: /usr/lib64/libffi.so.8.1.2: PASS: glibcxx-assertions test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: stack-clash test because compiled with -fstack-clash-protection Hardened: /usr/lib64/libffi.so.8.1.2: skip: gaps test because string notes imply full coverage Hardened: /usr/lib64/libffi.so.8.1.2: skip: cf-protection test because not an x86_64 binary Hardened: /usr/lib64/libffi.so.8.1.2: PASS: entry test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: fast test Hardened: /usr/lib64/libffi.so.8.1.2: skip: fips test because not a GO binary Hardened: /usr/lib64/libffi.so.8.1.2: skip: go-revision test because no GO compiled code found Hardened: /usr/lib64/libffi.so.8.1.2: PASS: instrumentation test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: openssl-engine test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: production test Hardened: /usr/lib64/libffi.so.8.1.2: FAIL: property-note test because properly formatted .note.gnu.property not found (it is needed for branch protection support) Hardened: /usr/lib64/libffi.so.8.1.2: info: For more information visit: https://sourceware.org/annobin/annobin.html/Test-property-note.html Hardened: /usr/lib64/libffi.so.8.1.2: PASS: run-path test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: rwx-seg test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: short-enums test Hardened: /usr/lib64/libffi.so.8.1.2: skip: stack-realign test because not an i686 executable Hardened: /usr/lib64/libffi.so.8.1.2: PASS: textrel test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: threads test Hardened: /usr/lib64/libffi.so.8.1.2: PASS: unicode test Hardened: /usr/lib64/libffi.so.8.1.2: Overall: FAIL.
The tests failing are dynamic-tags and property-note. This is caused because there is an assembly file for aarch64 (src/aarch64/sysv.S) that has not the proper BTI instruction (dynamic-tags) or missing .note.gnu.property section (property-note).
This was added in libffi v3.4.6 so to fix the test we need to either backport it or update to 3.4.6.