glibc/scripts
Florian Weimer 340097d0b5 elf: Extract glibcelf constants from <elf.h>
The need to maintain elf/elf.h and scripts/glibcelf.py in parallel
results in a backporting hazard: they need to be kept in sync to
avoid elf/tst-glibcelf consistency check failures.  glibcelf (unlike
tst-glibcelf) does not use the C implementation to extract constants.
This applies the additional glibcpp syntax checks to <elf.h>.

This  changereplaces the types derived from Python enum types with
custom types _TypedConstant, _IntConstant, and _FlagConstant.  These
types have fewer safeguards, but this also allows incremental
construction and greater flexibility for grouping constants among
the types.  Architectures-specific named constants are now added
as members into their superclasses (but value-based lookup is
still restricted to generic constants only).

Consequently, check_duplicates in elf/tst-glibcelf has been adjusted
to accept differently-named constants of the same value if their
subtypes are distinct.  The ordering check for named constants
has been dropped because they are no longer strictly ordered.

Further test adjustments: Some of the type names are different.
The new types do not support iteration (because it is unclear
whether iteration should cover the all named values (including
architecture-specific constants), or only the generic named values),
so elf/tst-glibcelf now uses by_name explicit (to get all constants).
PF_HP_SBP and PF_PARISC_SBP are now of distinct types (PfHP and
PfPARISC), so they are how both present on the Python side.  EM_NUM
and PT_NUM are filtered (which was an oversight in the old
conversion).

The new version of glibcelf should also be compatible with earlier
Python versions because it no longer depends on the enum module and its
advanced features.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
2022-09-22 12:10:41 +02:00
..
abi-versions.awk
abilist.awk Add GLIBC_ABI_DT_RELR for DT_RELR support 2022-04-26 10:16:11 -07:00
backport-support.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
build-many-glibcs.py scripts/build-many-glibcs.py: Use https:// for sourceware.org Git clones 2022-09-05 15:52:24 +02:00
check-c++-types.sh grep: egrep -> grep -E, fgrep -> grep -F 2022-06-05 12:09:02 -07:00
check-execstack.awk check-execstack: Permit sysdeps to xfail some libs 2018-07-20 03:28:14 +02:00
check-initfini.awk Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-installed-headers.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-local-headers.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-localplt.awk
check-obsolete-constructs.py scripts: Extract glibcpp.py from check-obsolete-constructs.py 2022-09-22 12:10:41 +02:00
check-textrel.awk
check-wrapper-headers.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
check-wx-segment.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
config-uname.sh
config.guess Update scripts/config.* files from upstream GNU config version 2022-07-19 09:32:19 -03:00
config.sub Update scripts/config.* files from upstream GNU config version 2022-07-19 09:32:19 -03:00
cpp
cross-test-ssh.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
documented.sh grep: egrep -> grep -E, fgrep -> grep -F 2022-06-05 12:09:02 -07:00
dso-ordering-test.py scripts/dso-ordering-test.py: Generate program run-time dependencies 2022-09-06 07:38:16 +02:00
evaluate-test.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
firstversions.awk
gen-as-const.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gen-libc-abis
gen-libc-modules.awk
gen-posix-conf-vars.awk
gen-rrtypes.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gen-sorted.awk Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
gen-tunables.awk elf: Avoid RELATIVE relocs in __tunables_init 2021-01-21 14:05:15 +00:00
glibc_shared_code.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
glibcelf.py elf: Extract glibcelf constants from <elf.h> 2022-09-22 12:10:41 +02:00
glibcextract.py glibcextract.py: Add compile_c_snippet 2022-08-12 09:15:03 -03:00
glibcpp.py scripts: Enhance glibcpp to do basic macro processing 2022-09-22 12:10:41 +02:00
glibcsymbols.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
haveversions.awk Don't build libnsl for new ABIs 2018-09-24 10:23:10 +02:00
install-sh Update miscellaneous files from upstream sources. 2018-12-06 17:21:47 +00:00
lib-names.awk
list-fixed-bugs.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
list-sources.sh
localplt.awk
merge-test-results.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
mkinstalldirs Update miscellaneous files from upstream sources. 2018-12-06 17:21:47 +00:00
move-if-change Sync move-if-change from Gnulib, updating copyright 2022-01-01 11:42:26 -08:00
move-symbol-to-libc.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
pylint
pylintrc
rellns-sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
soversions.awk
sysd-rules.awk sysd-rules: Cut down the number of rtld-% pattern rules 2016-09-20 10:41:05 +02:00
test_printers_common.py Disable debuginfod in printer tests [BZ #28757] 2022-01-14 05:07:29 -08:00
test_printers_exceptions.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
test-installation.pl Update copyright dates not handled by scripts/update-copyrights. 2022-01-01 11:42:26 -08:00
tst-elf-edit.py csu: Implement and use _dl_early_allocate during static startup 2022-05-16 18:42:03 +02:00
tst-ld-trace.py elf: Fix DFS sorting algorithm for LD_TRACE_LOADED_OBJECTS with missing libraries (BZ #28868) 2022-04-27 08:36:09 -03:00
update-abilist.sh Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
update-copyrights Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
vcstocl_quirks.py Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
versionlist.awk Update copyright dates with scripts/update-copyrights 2022-01-01 11:40:24 -08:00
versions.awk Add GLIBC_ABI_DT_RELR for DT_RELR support 2022-04-26 10:16:11 -07:00