public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] libsanitizer: Disable libbacktrace on sanitizer_platform_limits_freebsd.cpp
@ 2021-10-30 20:53 H.J. Lu
  2021-11-02  9:14 ` Richard Biener
  0 siblings, 1 reply; 11+ messages in thread
From: H.J. Lu @ 2021-10-30 20:53 UTC (permalink / raw)
  To: gcc-patches; +Cc: Jakub Jelinek

sanitizer_platform_limits_freebsd.cpp must include <md5.h> from the OS,
not include/md5.h in GCC source tree which is included by libbacktrace
support.  Disable libbacktrace on sanitizer_platform_limits_freebsd.cpp
to avoid include/md5.h to restore bootstrap on FreeBSD.

	PR bootstrap/102675
	* sanitizer_common/Makefile.am (AM_CXXFLAGS): Extract libbacktrace
	CXXFLAGS to ...
	(LIBBACKTRACE_CXXFLAGS): Here.  New.
	(sanitizer_common_files): Move sanitizer_platform_limits_freebsd.cpp
	to ...
	(sanitizer_common_files_no_libbacktrace): Here.  New.
	(AM_CXXFLAGS): Add $(LIBBACKTRACE_CXXFLAGS) for
	$(sanitizer_common_files).
	(libsanitizer_common_la_SOURCES): Add
	$(sanitizer_common_files_no_libbacktrace).
	* sanitizer_common/Makefile.in: Regenerate.
---
 libsanitizer/sanitizer_common/Makefile.am | 24 +++++++++++-----
 libsanitizer/sanitizer_common/Makefile.in | 35 ++++++++++++++++-------
 2 files changed, 41 insertions(+), 18 deletions(-)

diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am
index d04f2d8bd16..0ea459c2b3a 100644
--- a/libsanitizer/sanitizer_common/Makefile.am
+++ b/libsanitizer/sanitizer_common/Makefile.am
@@ -9,11 +9,12 @@ AM_CXXFLAGS += $(LIBSTDCXX_RAW_CXX_CXXFLAGS)
 AM_CXXFLAGS += -std=gnu++14
 AM_CXXFLAGS += $(EXTRA_CXXFLAGS)
 if LIBBACKTRACE_SUPPORTED
-AM_CXXFLAGS += -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE \
-	       -I $(top_srcdir)/../libbacktrace \
-	       -I $(top_builddir)/libbacktrace \
-	       -I $(top_srcdir)/../include \
-	       -include $(top_srcdir)/libbacktrace/backtrace-rename.h
+LIBBACKTRACE_CXXFLAGS = \
+  -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE \
+  -I $(top_srcdir)/../libbacktrace \
+  -I $(top_builddir)/libbacktrace \
+  -I $(top_srcdir)/../include \
+  -include $(top_srcdir)/libbacktrace/backtrace-rename.h
 endif
 AM_CCASFLAGS = $(EXTRA_ASFLAGS)
 ACLOCAL_AMFLAGS = -I m4
@@ -45,7 +46,6 @@ sanitizer_common_files = \
 	sanitizer_netbsd.cpp \
 	sanitizer_openbsd.cpp \
 	sanitizer_persistent_allocator.cpp \
-	sanitizer_platform_limits_freebsd.cpp \
 	sanitizer_platform_limits_linux.cpp \
 	sanitizer_platform_limits_openbsd.cpp \
 	sanitizer_platform_limits_posix.cpp \
@@ -81,8 +81,18 @@ sanitizer_common_files = \
 	sanitizer_unwind_win.cpp \
 	sanitizer_win.cpp
 
+# Don't add $(LIBBACKTRACE_CXXFLAGS) for the following files:
+# 1. sanitizer_platform_limits_freebsd.cpp must include <md5.h> from
+#    the OS, not include/md5.h in GCC source tree.
+sanitizer_common_files_no_libbacktrace = \
+	sanitizer_platform_limits_freebsd.cpp
 
-libsanitizer_common_la_SOURCES = $(sanitizer_common_files) 
+$(sanitizer_common_files:.cpp=.lo) \
+  $(sanitizer_common_files:.cpp=.$(OBJEXT)): AM_CXXFLAGS += $(LIBBACKTRACE_CXXFLAGS)
+
+libsanitizer_common_la_SOURCES = \
+  $(sanitizer_common_files) \
+  $(sanitizer_common_files_no_libbacktrace)
 libsanitizer_common_la_LIBADD = $(SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS)
 libsanitizer_common_la_DEPENDENCIES =  $(SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS)
 
diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in
index 2856894d62b..1433db2238b 100644
--- a/libsanitizer/sanitizer_common/Makefile.in
+++ b/libsanitizer/sanitizer_common/Makefile.in
@@ -89,12 +89,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-@LIBBACKTRACE_SUPPORTED_TRUE@am__append_1 = -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE \
-@LIBBACKTRACE_SUPPORTED_TRUE@	       -I $(top_srcdir)/../libbacktrace \
-@LIBBACKTRACE_SUPPORTED_TRUE@	       -I $(top_builddir)/libbacktrace \
-@LIBBACKTRACE_SUPPORTED_TRUE@	       -I $(top_srcdir)/../include \
-@LIBBACKTRACE_SUPPORTED_TRUE@	       -include $(top_srcdir)/libbacktrace/backtrace-rename.h
-
 subdir = sanitizer_common
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -131,7 +125,6 @@ am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
 	sanitizer_mac.lo sanitizer_mac_libcdep.lo sanitizer_mutex.lo \
 	sanitizer_netbsd.lo sanitizer_openbsd.lo \
 	sanitizer_persistent_allocator.lo \
-	sanitizer_platform_limits_freebsd.lo \
 	sanitizer_platform_limits_linux.lo \
 	sanitizer_platform_limits_openbsd.lo \
 	sanitizer_platform_limits_posix.lo \
@@ -153,7 +146,8 @@ am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
 	sanitizer_thread_registry.lo sanitizer_tls_get_addr.lo \
 	sanitizer_unwind_linux_libcdep.lo sanitizer_unwind_win.lo \
 	sanitizer_win.lo
-am_libsanitizer_common_la_OBJECTS = $(am__objects_1)
+am__objects_2 = sanitizer_platform_limits_freebsd.lo
+am_libsanitizer_common_la_OBJECTS = $(am__objects_1) $(am__objects_2)
 libsanitizer_common_la_OBJECTS = $(am_libsanitizer_common_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -376,7 +370,14 @@ AM_CXXFLAGS = -Wall -W -Wno-unused-parameter -Wwrite-strings -pedantic \
 	-Wno-long-long -fPIC -fno-builtin -fno-exceptions -fno-rtti \
 	-fomit-frame-pointer -funwind-tables -fvisibility=hidden \
 	-Wno-variadic-macros $(LIBSTDCXX_RAW_CXX_CXXFLAGS) \
-	-std=gnu++14 $(EXTRA_CXXFLAGS) $(am__append_1)
+	-std=gnu++14 $(EXTRA_CXXFLAGS)
+@LIBBACKTRACE_SUPPORTED_TRUE@LIBBACKTRACE_CXXFLAGS = \
+@LIBBACKTRACE_SUPPORTED_TRUE@  -DSANITIZER_LIBBACKTRACE -DSANITIZER_CP_DEMANGLE \
+@LIBBACKTRACE_SUPPORTED_TRUE@  -I $(top_srcdir)/../libbacktrace \
+@LIBBACKTRACE_SUPPORTED_TRUE@  -I $(top_builddir)/libbacktrace \
+@LIBBACKTRACE_SUPPORTED_TRUE@  -I $(top_srcdir)/../include \
+@LIBBACKTRACE_SUPPORTED_TRUE@  -include $(top_srcdir)/libbacktrace/backtrace-rename.h
+
 AM_CCASFLAGS = $(EXTRA_ASFLAGS)
 ACLOCAL_AMFLAGS = -I m4
 noinst_LTLIBRARIES = libsanitizer_common.la
@@ -405,7 +406,6 @@ sanitizer_common_files = \
 	sanitizer_netbsd.cpp \
 	sanitizer_openbsd.cpp \
 	sanitizer_persistent_allocator.cpp \
-	sanitizer_platform_limits_freebsd.cpp \
 	sanitizer_platform_limits_linux.cpp \
 	sanitizer_platform_limits_openbsd.cpp \
 	sanitizer_platform_limits_posix.cpp \
@@ -441,7 +441,17 @@ sanitizer_common_files = \
 	sanitizer_unwind_win.cpp \
 	sanitizer_win.cpp
 
-libsanitizer_common_la_SOURCES = $(sanitizer_common_files) 
+
+# Don't add $(LIBBACKTRACE_CXXFLAGS) for the following files:
+# 1. sanitizer_platform_limits_freebsd.cpp must include <md5.h> from
+#    the OS, not include/md5.h in GCC source tree.
+sanitizer_common_files_no_libbacktrace = \
+	sanitizer_platform_limits_freebsd.cpp
+
+libsanitizer_common_la_SOURCES = \
+  $(sanitizer_common_files) \
+  $(sanitizer_common_files_no_libbacktrace)
+
 libsanitizer_common_la_LIBADD = $(SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS)
 libsanitizer_common_la_DEPENDENCIES = $(SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS)
 
@@ -800,6 +810,9 @@ uninstall-am:
 .PRECIOUS: Makefile
 
 
+$(sanitizer_common_files:.cpp=.lo) \
+  $(sanitizer_common_files:.cpp=.$(OBJEXT)): AM_CXXFLAGS += $(LIBBACKTRACE_CXXFLAGS)
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
-- 
2.33.0


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-11-18  9:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-30 20:53 [PATCH] libsanitizer: Disable libbacktrace on sanitizer_platform_limits_freebsd.cpp H.J. Lu
2021-11-02  9:14 ` Richard Biener
2021-11-02 12:02   ` H.J. Lu
2021-11-02 12:11     ` Jakub Jelinek
2021-11-02 12:26       ` H.J. Lu
2021-11-04  5:43         ` Gerald Pfeifer
2021-11-04  8:19           ` Jakub Jelinek
2021-11-04 12:30             ` H.J. Lu
2021-11-08  7:50               ` Gerald Pfeifer
2021-11-17 13:09                 ` [PATCH] libsanitizer: Fix bootstrap on FreeBSD [PR102675] Jakub Jelinek
2021-11-18  9:00                   ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).