[llvm-bugs] [Bug 35659] New: Change in COMMON symbol layout after "ELF: Remove DefinedCommon."
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Dec 14 05:50:13 PST 2017
https://bugs.llvm.org/show_bug.cgi?id=35659
Bug ID: 35659
Summary: Change in COMMON symbol layout after "ELF: Remove
DefinedCommon."
Product: lld
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: ELF
Assignee: unassignedbugs at nondot.org
Reporter: Alberto.Magni at microsoft.com
CC: aaron.smith at microsoft.com, llvm-bugs at lists.llvm.org,
peter at pcc.me.uk
Created attachment 19548
--> https://bugs.llvm.org/attachment.cgi?id=19548&action=edit
Map files to show the different layout
LLD commit dc49c0 (https://reviews.llvm.org/D39666) causes the layout of COMMON
symbols to change in a busybox binary.
You can see this from the two map files attached (generated for x86_64):
busybox_unstripped.map.7ca03 (the common symbols are at the end of the .bss
section) generated with 7ca03, the commit before dc49c0.
busybox_unstripped.map.dc49c0 (the common symbols are at the start of the .bss
section)
(the binaries used by the linker have not changed between the two versions)
dc49c0 appears to me as an internal refactoring to LLD. Is the different layout
expected ?
I am asking because this change is causing a kernel panic when booting linux
with busybox.
For completeness at the bottom you find the command line used by the busybox
build system to link the executable (called busybox_unstripped)
(We use musl-clang as a compiler wrapper, which internally calls clang to
statically link against musl libc.a)
Notice the use of –sort-common, which might explain the difference.
If you would like to have a reproducer I can come up with one (it probably
won't be pretty though)
Many thanks in advance
Alberto
musl-clang -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused
-Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes
-Wmissing-declarations -Wno-format-security -Wdeclaration-after-statement
-Wold-style-definition -fno-builtin-strlen -finline-limit=0
-fomit-frame-pointer -ffunction-sections -fdata-sections -funsigned-char
-static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1
-falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables
-fno-builtin-printf -Os -o busybox_unstripped -Wl,--sort-common
-Wl,--sort-section,alignment -Wl,--gc-sections -Wl,--start-group
applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a
coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a e2fsprogs/lib.a
editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a
loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a
networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a
printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a
sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o
archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o
coreutils/libcoreutils/built-in.o debianutils/built-in.o e2fsprogs/built-in.o
editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o
libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o
miscutils/built-in.o modutils/built-in.o networking/built-in.o
networking/libiproute/built-in.o networking/udhcp/built-in.o
printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o
shell/built-in.o sysklogd/built-in.o util-linux/built-in.o
util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group
-Wl,--end-group -Wl,--warn-common -Wl,-Map,busybox_unstripped.map
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171214/b935677b/attachment.html>
More information about the llvm-bugs
mailing list