public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: "H.J. Lu" <hjl.tools@gmail.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>, Jakub Jelinek <jakub@redhat.com>
Subject: Re: [PATCH] libsanitizer: Disable libbacktrace on sanitizer_platform_limits_freebsd.cpp
Date: Tue, 2 Nov 2021 05:02:12 -0700	[thread overview]
Message-ID: <CAMe9rOpkNPcf8JbwrOXMdqyCS_Jgn7iD0b8PyyvAOpa9s_jyYg@mail.gmail.com> (raw)
In-Reply-To: <CAFiYyc22ciw0+oyOkY5vi8Ki9_QNWQ_Dkg3FhZeBYYcwqJNSzg@mail.gmail.com>

On Tue, Nov 2, 2021 at 2:14 AM Richard Biener
<richard.guenther@gmail.com> wrote:
>
> 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?)?

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 <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
> >



-- 
H.J.

  reply	other threads:[~2021-11-02 12:02 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-30 20:53 H.J. Lu
2021-11-02  9:14 ` Richard Biener
2021-11-02 12:02   ` H.J. Lu [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAMe9rOpkNPcf8JbwrOXMdqyCS_Jgn7iD0b8PyyvAOpa9s_jyYg@mail.gmail.com \
    --to=hjl.tools@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jakub@redhat.com \
    --cc=richard.guenther@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).