From 4d7b5c9754b09b0b975bf2b87a1cc0fae2d6fc5e Mon Sep 17 00:00:00 2001 From: Jan-Benedict Glaw Date: Wed, 16 Oct 2013 20:45:20 +0000 Subject: [PATCH] 2013-10-16 Jan-Benedict Glaw * ChangeLog: Sync from GCC. * mh-darwin: Ditto. * bootstrap-ubsan.mk: Ditto. --- config/ChangeLog | 10 ++++++++++ config/bootstrap-ubsan.mk | 7 +++++++ config/mh-darwin | 17 ++++++++++++++--- 3 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 config/bootstrap-ubsan.mk diff --git a/config/ChangeLog b/config/ChangeLog index cdc733c705a..e3f6f456695 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,13 @@ +2013-09-29 Iain Sandoe + + * mh-darwin (BOOT_CFLAGS): Only add -mdynamic-no-pic for m32 hosts. + (STAGE1_CFLAGS, STAGE1_LDFLAGS): New. + Fix over-length lines and amend comments. + +2013-08-30 Marek Polacek + + * bootstrap-ubsan.mk: New. + 2013-03-27 Kai Tietz * dfp.m4: Add support for cygwin x64 target. diff --git a/config/bootstrap-ubsan.mk b/config/bootstrap-ubsan.mk new file mode 100644 index 00000000000..2d21e832e21 --- /dev/null +++ b/config/bootstrap-ubsan.mk @@ -0,0 +1,7 @@ +# This option enables -fsanitize=undefined for stage2 and stage3. + +STAGE2_CFLAGS += -fsanitize=undefined +STAGE3_CFLAGS += -fsanitize=undefined +POSTSTAGE1_LDFLAGS += -fsanitize=undefined -static-libubsan -lpthread \ + -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ubsan/ \ + -B$$r/prev-$(TARGET_SUBDIR)/libsanitizer/ubsan/.libs diff --git a/config/mh-darwin b/config/mh-darwin index 19bf26568b5..a039f201410 100644 --- a/config/mh-darwin +++ b/config/mh-darwin @@ -1,7 +1,18 @@ # The -mdynamic-no-pic ensures that the compiler executable is built without # position-independent-code -- the usual default on Darwin. This fix speeds # compiles by 3-5%. -BOOT_CFLAGS += -mdynamic-no-pic +BOOT_CFLAGS += \ +`case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ + echo -mdynamic-no-pic ;; esac;` -# Ensure we don't try and use -pie, as it is incompatible with pch. -BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` +# ld on Darwin versions >= 10.7 defaults to PIE executables. Disable this for +# gcc components, since it is incompatible with our pch implementation. +BOOT_LDFLAGS += \ +`case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` + +# Similarly, for cross-compilation. +STAGE1_CFLAGS += \ +`case ${host} in i?86-*-darwin* | powerpc-*-darwin*)\ + echo -mdynamic-no-pic ;; esac;` +STAGE1_LDFLAGS += \ +`case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` -- 2.30.2