mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
Makerules: Remove no-op -Wl,-d when linking libc_pic.os
In GNU ld, -d assigns space to common symbols for -r (i.e. change common
symbols to STB_GLOBAL definitions). This option was added in commit
da2d1bc5ad
(1998) perhaps because ld at
that time had a bug that common symbols did not override shared object
definitions. -d has been long unneeded and more so since -fno-common
was added to +cflags.
This commit is contained in:
parent
01c60dc90c
commit
dbb0f06cc0
@ -633,14 +633,10 @@ LDFLAGS-c.so = -nostdlib -nostartfiles
|
||||
LDLIBS-c.so += $(libc.so-gnulib)
|
||||
# Give libc.so an entry point and make it directly runnable itself.
|
||||
LDFLAGS-c.so += -e __libc_main
|
||||
# Pre-link the objects of libc_pic.a so that we can locally resolve
|
||||
# COMMON symbols before we link against ld.so. This is because ld.so
|
||||
# contains some of libc_pic.a already, which will prevent the COMMONs
|
||||
# from being allocated in libc.so, which introduces evil dependencies
|
||||
# between libc.so and ld.so, which can make it impossible to upgrade.
|
||||
# Pre-link the objects of libc_pic.a for .gnu.glibc-stub.* processing.
|
||||
$(common-objpfx)libc_pic.os: $(common-objpfx)libc_pic.a
|
||||
$(LINK.o) -nostdlib -nostartfiles -r -o $@ \
|
||||
$(LDFLAGS-c_pic.os) -Wl,-d $(whole-archive) $^ -o $@
|
||||
$(LDFLAGS-c_pic.os) $(whole-archive) $^ -o $@
|
||||
|
||||
ifeq (,$(strip $(shlib-lds-flags)))
|
||||
# Generate a list of -R options to excise .gnu.glibc-stub.* sections.
|
||||
|
Loading…
Reference in New Issue
Block a user