On Sat, Oct 30, 2021 at 10:54 PM H.J. Lu via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > 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.
Err, but that will just get complaints about disabled libbacktrace backtracking (from within the sanitizer?)? > 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 >