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
|
Install.StripFlag += -s
|
||||||
endif
|
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
|
# Adjust linker flags for building an executable
|
||||||
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||||
ifndef TOOL_NO_EXPORTS
|
ifndef TOOL_NO_EXPORTS
|
||||||
|
@ -12,4 +12,7 @@ TOOLNAME := bugpoint
|
|||||||
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
LINK_COMPONENTS := asmparser instrumentation scalaropts ipo linker bitreader \
|
||||||
bitwriter irreader vectorize objcarcopts
|
bitwriter irreader vectorize objcarcopts
|
||||||
|
|
||||||
|
# Support plugins.
|
||||||
|
NO_DEAD_STRIP := 1
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
||||||
|
@ -11,5 +11,8 @@ LEVEL := ../..
|
|||||||
TOOLNAME := llc
|
TOOLNAME := llc
|
||||||
LINK_COMPONENTS := all-targets bitreader asmparser irreader
|
LINK_COMPONENTS := all-targets bitreader asmparser irreader
|
||||||
|
|
||||||
|
# Support plugins.
|
||||||
|
NO_DEAD_STRIP := 1
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
||||||
|
|
||||||
|
@ -49,9 +49,6 @@ ifeq ($(HOST_OS),Darwin)
|
|||||||
endif
|
endif
|
||||||
# Include everything from the .a's into the shared library.
|
# Include everything from the .a's into the shared library.
|
||||||
LLVMLibsOptions := $(LLVMLibsOptions) -all_load
|
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
|
# 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/')
|
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,$(LTO_LIBRARY_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
|
||||||
-Wl,-compatibility_version -Wl,1
|
-Wl,-compatibility_version -Wl,1
|
||||||
endif
|
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
|
# 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/')
|
DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
|
||||||
|
@ -11,4 +11,7 @@ LEVEL := ../..
|
|||||||
TOOLNAME := opt
|
TOOLNAME := opt
|
||||||
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets
|
LINK_COMPONENTS := bitreader bitwriter asmparser irreader instrumentation scalaropts objcarcopts ipo vectorize all-targets
|
||||||
|
|
||||||
|
# Support plugins.
|
||||||
|
NO_DEAD_STRIP := 1
|
||||||
|
|
||||||
include $(LEVEL)/Makefile.common
|
include $(LEVEL)/Makefile.common
|
||||||
|
Loading…
x
Reference in New Issue
Block a user