[PATCH] elf: Support lld-style link map for librtld.map
Fangrui Song
maskray@google.com
Fri Mar 13 02:09:55 GMT 2020
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)
---
elf/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/elf/Makefile b/elf/Makefile
index da689a2c7b..b035407112 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -512,9 +512,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 \
--
2.25.1
More information about the Libc-alpha
mailing list