12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # The -mdynamic-no-pic ensures that the compiler executable is built without
- # position-independent-code -- the usual default on Darwin. This speeds compiles
- # by 8-20% (measurements made against GCC-11).
- # However, we cannot add it unless the bootstrap compiler supports
- # -mno-dynamic-no-pic to undo it, since libiberty, at least, needs this.
- # We use Werror, since some versions of clang report unknown command line flags
- # as a warning only.
- # We only need to determine this for the host tool used to build stage1 (or a
- # non-bootstrapped compiler), later stages will be built by GCC which supports
- # the required flags.
- # We cannot use mdynamic-no-pic when building shared host resources.
- ifeq (${host_shared},no)
- BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \
- $(CC) -S -xc /dev/null -o /dev/null -Werror -mno-dynamic-no-pic 2>/dev/null \
- && echo true)
- else
- BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := false
- endif
- @if gcc-bootstrap
- ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true)
- STAGE1_CFLAGS += -mdynamic-no-pic
- else
- STAGE1_CFLAGS += -fPIC
- endif
- ifeq (${host_shared},no)
- # Add -mdynamic-no-pic to later stages when we know it is built with GCC.
- BOOT_CFLAGS += -mdynamic-no-pic
- endif
- @endif gcc-bootstrap
- @unless gcc-bootstrap
- ifeq (${BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC},true)
- # FIXME: we should also enable this for cross and non-bootstrap builds but
- # that needs amendment to libcc1.
- # CFLAGS += -mdynamic-no-pic
- # CXXFLAGS += -mdynamic-no-pic
- else
- CFLAGS += -fPIC
- CXXFLAGS += -fPIC
- endif
- @endunless gcc-bootstrap
|