diff options
author | Fangrui Song <maskray@google.com> | 2020-04-21 13:28:42 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2020-04-21 15:10:10 -0300 |
commit | eb06601bb4187d8f5a9f55c2d212747869f63fe1 (patch) | |
tree | 1f3b3e64ea9fd5a3e55c1736e9ae127c3f6bc7e8 /elf | |
parent | 566e10aa7292bacd74d229ca6f2cd9e8c8ba8748 (diff) | |
download | glibc-eb06601bb4187d8f5a9f55c2d212747869f63fe1.zip glibc-eb06601bb4187d8f5a9f55c2d212747869f63fe1.tar.gz glibc-eb06601bb4187d8f5a9f55c2d212747869f63fe1.tar.bz2 |
elf: Support lld-style link map for librtld.map
GNU ld and gold's -Map include a line like:
path/to/build/libc_pic.a(check_fds.os)
lld -Map does not have the archive member list, but we can still derive the
members from the following output
VMA LMA Size Align Out In Symbol
...
1a1c0 1a1c0 e2 16 path/to/build/libc_pic.a(check_fds.os):(.text)
Diffstat (limited to 'elf')
-rw-r--r-- | elf/Makefile | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/elf/Makefile b/elf/Makefile index 9b1d58c..6919e53 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -514,9 +514,10 @@ $(objpfx)librtld.map: $(objpfx)dl-allobjs.os $(common-objpfx)libc_pic.a rm -f $@.o mv -f $@T $@ +# For lld, skip preceding addresses and values before matching the archive and the member. $(objpfx)librtld.mk: $(objpfx)librtld.map Makefile LC_ALL=C \ - sed -n 's@^$(common-objpfx)\([^(]*\)(\([^)]*\.os\)) *.*$$@\1 \2@p' \ + sed -n 's@^[0-9a-f ]*$(common-objpfx)\([^(]*\)(\([^)]*\.os\)) *.*$$@\1 \2@p' \ $< | \ while read lib file; do \ case $$lib in \ |