mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 17:32:19 +00:00
Strip dead code when linking by default with BFD ld (linux, ...) and ld64 (os x).
This reduces the size of clang-format from 22 MB to 1.8 MB, diagtool goes from 21 MB to 2.8 MB, libclang.so goes from 29 MB to 20 MB, etc. The size of the bin/ folder shrinks from 270 MB to 200 MB. Targets that support plugins and don't already use EXPORTED_SYMBOL_FILE (which libclang and libLTO already do) can set NO_DEAD_STRIP to opt out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198087 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b2f47c6a34
commit
5e7c782b29
@ -608,6 +608,22 @@ ifndef KEEP_SYMBOLS
|
||||
Install.StripFlag += -s
|
||||
endif
|
||||
|
||||
# By default, strip dead symbols at link time
|
||||
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||
ifneq ($(HOST_OS),Darwin)
|
||||
CXX.Flags += -ffunction-sections -fdata-sections
|
||||
endif
|
||||
endif
|
||||
ifndef NO_DEAD_STRIP
|
||||
ifeq ($(HOST_OS),Darwin)
|
||||
LD.Flags += -Wl,-dead_strip
|
||||
else
|
||||
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||
LD.Flags += -Wl,--gc-sections
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Adjust linker flags for building an executable
|
||||
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||
ifndef TOOL_NO_EXPORTS
|
||||
|
@ -12,4 +12,7 @@ TOOLNAME := bugpoint
|
||||
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
||||
bitwriter irreader vectorize objcarcopts
|
||||
|
||||
# Support plugins.
|
||||
NO_DEAD_STRIP := 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
@ -11,5 +11,8 @@ LEVEL := ../..
|
||||
TOOLNAME := llc
|
||||
LINK_COMPONENTS := all-targets bitreader asmparser irreader
|
||||
|
||||
# Support plugins.
|
||||
NO_DEAD_STRIP := 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
||||
|
@ -49,9 +49,6 @@ ifeq ($(HOST_OS),Darwin)
|
||||
endif
|
||||
# Include everything from the .a's into the shared library.
|
||||
LLVMLibsOptions := $(LLVMLibsOptions) -all_load
|
||||
# extra options to override libtool defaults
|
||||
LLVMLibsOptions := $(LLVMLibsOptions) \
|
||||
-Wl,-dead_strip
|
||||
|
||||
# Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
|
||||
DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
|
||||
|
@ -37,9 +37,6 @@ ifeq ($(HOST_OS),Darwin)
|
||||
-Wl,$(LTO_LIBRARY_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
|
||||
-Wl,-compatibility_version -Wl,1
|
||||
endif
|
||||
# extra options to override libtool defaults
|
||||
LLVMLibsOptions := $(LLVMLibsOptions) \
|
||||
-Wl,-dead_strip
|
||||
|
||||
# Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
|
||||
DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
|
||||
|
@ -11,4 +11,7 @@ LEVEL := ../..
|
||||
TOOLNAME := opt
|
||||
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets
|
||||
|
||||
# Support plugins.
|
||||
NO_DEAD_STRIP := 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
Loading…
x
Reference in New Issue
Block a user