systemd/tools
Jan Janssen 142f0c61a3 elf2efi: Rework ELF section conversion
The main reason we need to apply a whole lot of logic to the section
conversion logic is because PE sections have to be aligned to the page
size (although, currently not even EDK2 enforces this). The process of
achieving this with a linker script is fraught with errors, they are a
pain to set up correctly and suck in general. They are also not
supported by mold, which requires us to forcibly use bfd, which also
means that linker feature detection is easily at odds as meson has a
differnt idea of what linker is in use.

Instead of forcing a manual ELF segment layout with a linker script we
just let the linker do its thing. We then simply copy/concatenate the
sections while observing proper page boundaries.
Note that we could just copy the ELF load *segments* directly and
achieve the same result. Doing this manually allows us to strip sections
we don't need at runtime like the dynamic linking information (the
elf2efi conversion is effectively the dynamic loader).

Important sections like .sbat that we emit directly from code will
currently *not* be exposed as individual PE sections as they are
contained within the ELF segments. A future commit will fix this.
2023-09-29 16:56:30 +02:00
..
chromiumos hwdb: update autosuspend rules 2023-08-16 13:01:07 +02:00
add-git-hook.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
analyze-dump-sort.py tools: pylint analyze-dump-sort.py 2023-08-10 18:13:29 +02:00
catalog-report.py tools: pylint catalog-report.py 2023-08-10 11:08:17 +02:00
check-api-docs.sh Change all fixed-path bash shebangs to /u/b/env bash outside test/ 2021-12-12 21:13:50 +01:00
check-help.sh test/check-help: check that --help and -h are identical 2022-04-05 22:18:31 +02:00
check-includes.py tools: pylint check-includes.py 2023-08-10 11:08:17 +02:00
check-version.sh tests: add a smoke test for --version option in binaries 2022-04-05 22:18:31 +02:00
coverity.sh ci: simplify the Coverity script a bit 2022-08-11 10:57:25 +02:00
dbus_exporter.py tools: pylint dbus_exporter.py 2023-08-10 11:08:17 +02:00
dbus_ignorelist update-dbus-docs: Test that items are documented in the History section 2023-09-26 19:11:53 +01:00
debug-sd-boot.sh boot: Fix debug experience 2023-03-10 11:41:08 +01:00
dump-auxv.py tools: pylint dump-auxv.py 2023-08-10 18:13:29 +02:00
elf2efi.py elf2efi: Rework ELF section conversion 2023-09-29 16:56:30 +02:00
find-build-dir.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
find-double-newline.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
find-tabs.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
gdb-sd_dump_hashmaps.py tools: pylint gdb-sd_dump_hashmaps.py 2023-08-10 18:13:29 +02:00
generate-gperfs.py tools: pylint generate-gperfs.py 2023-08-10 18:13:29 +02:00
git-contrib.sh tools/git-contrib: list contributions not only from Weblate 2022-03-29 19:42:01 +02:00
list-discoverable-partitions.py tools: pylint list-discoverable-partitions.py 2023-08-10 18:13:29 +02:00
make-autosuspend-rules.py tools: pylint make-autosuspend-rules.py 2023-08-10 18:13:29 +02:00
make-directive-index.py tools: pylint make-directive-index.py 2023-08-10 18:13:29 +02:00
make-man-index.py tools: pylint make-man-index.py 2023-08-10 18:13:29 +02:00
meson-build.sh tools: explicitly specify "setup" subcommand 2023-03-03 20:06:30 +09:00
meson-render-jinja2.py tools: pylint meson-render-jinja2.py 2023-08-10 18:13:29 +02:00
meson-vcs-tag.sh meson: restore tools/meson-vcs-tag.sh 2023-09-18 14:37:09 +02:00
oss-fuzz.sh meson: Drop skip-deps option 2023-08-23 14:57:49 +02:00
update-dbus-docs.py update-dbus-docs: Test that items are documented in the History section 2023-09-26 19:11:53 +01:00
update-hwdb-autosuspend.sh tools: update-hwdb-autosuspend.sh: Point at HEAD, not master branch 2023-08-16 02:07:00 +01:00
update-hwdb.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
update-man-rules.py tools: pylint update-man-rules.py 2023-08-10 18:13:29 +02:00
update-syscall-tables.sh tools: shellcheck-ify most of the tool scripts 2021-04-20 20:11:13 +02:00
xml_helper.py tools: pylint xml_helper.py 2023-08-10 18:13:29 +02:00