From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52f.google.com (mail-pg1-x52f.google.com [IPv6:2607:f8b0:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 819803858402 for ; Tue, 2 Nov 2021 12:02:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 819803858402 Received: by mail-pg1-x52f.google.com with SMTP id e65so19949142pgc.5 for ; Tue, 02 Nov 2021 05:02:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2ljaF3GnDICgpABIm1nxLuVbig1yssSrvs5mOMLRSZo=; b=iQ6MLOF5aHjxiPbodsDwTL+pTtiG4c+RMFzcjKfpr1rASg8BM2k/s4U2EkAIEbbvnO eHpKE9u8/KLm61HwWOQ7QEPWgRKkPEZIrpFkckIVC4252NVUb+3NEY61KgtXJSefAEvD iHPg3qYLT4Ea8lTv97Vt6dK5VVPmKupg+tZ+OzucAEum8JS8cK/l4nFc95GY43JqjIiH hq3fwbZqRh5YIVde9Ca/i5kcw2u3RV/AgWU9nBwznpFYSQgxY+53gjBfDs3qlv5MAxfY QLPpQsyxr4rJ7KJjyfG6fC0Ufu+HqpPvM3aqevkb+3pa0tHrg7ZoqqVQ3Bau8vXDBQOA sysg== X-Gm-Message-State: AOAM532XmcjfPvE3Xxp98bdGgkodUZzIdEEFTuoGpFH3WGPCO8X8PGCJ 7XzaoX/QnGHto08KIvT0Ufy6t0rHVAHA1lz1PTc= X-Google-Smtp-Source: ABdhPJyoBBD0TisNnFuey+6SSZHR4HlYV3Vkx9d3VZtBmQ7BtlOvofrW+HO3MPxpcyRbg2x3BcFn6tfP8WbRlg1P3U8= X-Received: by 2002:a05:6a00:2351:b0:47b:d092:d2e4 with SMTP id j17-20020a056a00235100b0047bd092d2e4mr35292682pfj.76.1635854568442; Tue, 02 Nov 2021 05:02:48 -0700 (PDT) MIME-Version: 1.0 References: <20211030205350.35085-1-hjl.tools@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Tue, 2 Nov 2021 05:02:12 -0700 Message-ID: Subject: Re: [PATCH] libsanitizer: Disable libbacktrace on sanitizer_platform_limits_freebsd.cpp To: Richard Biener Cc: GCC Patches , Jakub Jelinek Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3029.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Nov 2021 12:02:51 -0000 On Tue, Nov 2, 2021 at 2:14 AM Richard Biener wrote: > > On Sat, Oct 30, 2021 at 10:54 PM H.J. Lu via Gcc-patches > wrote: > > > > sanitizer_platform_limits_freebsd.cpp must include 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?)? It disables libbacktrace backtracking only on one file, sanitizer_platform_limits_freebsd.cpp, which contains only data on FreeBSD. I highly doubt that libbacktrace backtracking is used in it. > > 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 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 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 > > -- H.J.