mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 09:34:42 +01:00
[CMake][AIX] Add -bcdtors:mbr option when building with IBM XL
Summary: The `-bcdtors:mbr` option causes processing for constructors and destructors to omit otherwise-unreferenced members of static libraries, matching the processing done on Linux, where `--whole-archive` is not the default. Applying this option is desirable for reducing the footprint of an installation. Reviewed By: daltenty Differential Revision: https://reviews.llvm.org/D79749
This commit is contained in:
@@ -196,6 +196,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
|
||||
# XL generates a small number of relocations not of the large model, -bbigtoc is needed.
|
||||
append("-Wl,-bbigtoc"
|
||||
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||
# The default behaviour on AIX processes dynamic initialization of non-local variables with
|
||||
# static storage duration even for archive members that are otherwise unreferenced.
|
||||
# Since `--whole-archive` is not used by the LLVM build to keep such initializations for Linux,
|
||||
# we can limit the processing for archive members to only those that are otherwise referenced.
|
||||
append("-bcdtors:mbr"
|
||||
CMAKE_EXE_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user