From: Richard Biener <richard.guenther@gmail.com>
To: "Martin Liška" <mliska@suse.cz>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>, Kito Cheng <kito.cheng@gmail.com>
Subject: Re: [PATCH] lto-plugin: Add path to libatomic for riscv64
Date: Mon, 4 Jul 2022 14:28:54 +0200 [thread overview]
Message-ID: <CAFiYyc3QPg-fvpG3e5HZJxhiAkuP0yKidTdP7P865npwdhP7BA@mail.gmail.com> (raw)
In-Reply-To: <CAFiYyc286bjz66NY_ENLcfeVLu3AQspKPF--WUS+6afsfCowgQ@mail.gmail.com>
On Mon, Jul 4, 2022 at 2:28 PM Richard Biener
<richard.guenther@gmail.com> wrote:
>
> On Mon, Jul 4, 2022 at 1:32 PM Martin Liška <mliska@suse.cz> wrote:
> >
> > Similarly to libgo, we need to provide -L for targets where
> > libpthread does depends on libatomic.
> >
> > Ready for master?
>
> OK
... but ... is libatomic properly built for the host? libgo is a
target library.
>
> > PR bootstrap/106156
> >
> > lto-plugin/ChangeLog:
> >
> > * Makefile.am: Use PTHREAD_CFLAGS.
> > * Makefile.in: Regenerate.
> > * configure.ac: Detect if PTHREAD_CFLAGS should contain path
> > to libatomic.
> > * configure: Regenerate.
> > ---
> > lto-plugin/Makefile.am | 2 +-
> > lto-plugin/Makefile.in | 3 ++-
> > lto-plugin/configure | 34 ++++++++++++++++++++++++++++++++--
> > lto-plugin/configure.ac | 17 +++++++++++++++++
> > 4 files changed, 52 insertions(+), 4 deletions(-)
> >
> > diff --git a/lto-plugin/Makefile.am b/lto-plugin/Makefile.am
> > index 81362eafc36..64a6bc8c943 100644
> > --- a/lto-plugin/Makefile.am
> > +++ b/lto-plugin/Makefile.am
> > @@ -10,7 +10,7 @@ libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(a
> > AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS)
> > AM_CFLAGS = @ac_lto_plugin_warn_cflags@ $(CET_HOST_FLAGS)
> > # The plug-in depends on pthreads.
> > -AM_LDFLAGS = -pthread @ac_lto_plugin_ldflags@
> > +AM_LDFLAGS = $(PTHREAD_CFLAGS) @ac_lto_plugin_ldflags@
> > AM_LIBTOOLFLAGS = --tag=disable-static
> > override CFLAGS := $(filter-out -fsanitize=address -fsanitize=hwaddress,$(CFLAGS))
> > override LDFLAGS := $(filter-out -fsanitize=address -fsanitize=hwaddress,$(LDFLAGS))
> > diff --git a/lto-plugin/Makefile.in b/lto-plugin/Makefile.in
> > index 2033dd9b7c2..de19c8873de 100644
> > --- a/lto-plugin/Makefile.in
> > +++ b/lto-plugin/Makefile.in
> > @@ -264,6 +264,7 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
> > PACKAGE_URL = @PACKAGE_URL@
> > PACKAGE_VERSION = @PACKAGE_VERSION@
> > PATH_SEPARATOR = @PATH_SEPARATOR@
> > +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
> > RANLIB = @RANLIB@
> > SED = @SED@
> > SET_MAKE = @SET_MAKE@
> > @@ -345,7 +346,7 @@ libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(a
> > AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS)
> > AM_CFLAGS = @ac_lto_plugin_warn_cflags@ $(CET_HOST_FLAGS)
> > # The plug-in depends on pthreads.
> > -AM_LDFLAGS = -pthread @ac_lto_plugin_ldflags@
> > +AM_LDFLAGS = $(PTHREAD_CFLAGS) @ac_lto_plugin_ldflags@
> > AM_LIBTOOLFLAGS = --tag=disable-static
> > libexecsub_LTLIBRARIES = liblto_plugin.la
> > in_gcc_libs = $(foreach lib, $(libexecsub_LTLIBRARIES), $(gcc_build_dir)/$(lib))
> > diff --git a/lto-plugin/configure b/lto-plugin/configure
> > index aaa91a63623..aa35bd94b3f 100755
> > --- a/lto-plugin/configure
> > +++ b/lto-plugin/configure
> > @@ -650,6 +650,7 @@ LD
> > FGREP
> > SED
> > LIBTOOL
> > +PTHREAD_CFLAGS
> > LTO_PLUGIN_USE_SYMVER_SUN_FALSE
> > LTO_PLUGIN_USE_SYMVER_SUN_TRUE
> > LTO_PLUGIN_USE_SYMVER_GNU_FALSE
> > @@ -6020,6 +6021,35 @@ fi
> >
> >
> >
> > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5
> > +$as_echo_n "checking whether -pthread is supported... " >&6; }
> > +if ${lto_plugin_cv_lib_pthread+:} false; then :
> > + $as_echo_n "(cached) " >&6
> > +else
> > + CFLAGS_hold=$CFLAGS
> > +CFLAGS="$CFLAGS -pthread -L../$build/libatomic/.libs"
> > +cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> > +/* end confdefs.h. */
> > +int i;
> > +_ACEOF
> > +if ac_fn_c_try_compile "$LINENO"; then :
> > + lto_plugin_cv_lib_pthread=yes
> > +else
> > + lto_plugin_cv_lib_pthread=no
> > +fi
> > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
> > +CFLAGS=$CFLAGS_hold
> > +fi
> > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lto_plugin_cv_lib_pthread" >&5
> > +$as_echo "$lto_plugin_cv_lib_pthread" >&6; }
> > +PTHREAD_CFLAGS=
> > +if test "$libgo_cv_lib_pthread" = yes; then
> > + # RISC-V apparently adds -latomic when using -pthread.
> > + PTHREAD_CFLAGS="-pthread -L../$build/libatomic/.libs"
> > +fi
> > +
> > +
> > +
> > case `pwd` in
> > *\ * | *\ *)
> > { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
> > @@ -12091,7 +12121,7 @@ else
> > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> > lt_status=$lt_dlunknown
> > cat > conftest.$ac_ext <<_LT_EOF
> > -#line 12094 "configure"
> > +#line 12124 "configure"
> > #include "confdefs.h"
> >
> > #if HAVE_DLFCN_H
> > @@ -12197,7 +12227,7 @@ else
> > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
> > lt_status=$lt_dlunknown
> > cat > conftest.$ac_ext <<_LT_EOF
> > -#line 12200 "configure"
> > +#line 12230 "configure"
> > #include "confdefs.h"
> >
> > #if HAVE_DLFCN_H
> > diff --git a/lto-plugin/configure.ac b/lto-plugin/configure.ac
> > index c2ec512880f..ba34a5d0ca1 100644
> > --- a/lto-plugin/configure.ac
> > +++ b/lto-plugin/configure.ac
> > @@ -91,6 +91,23 @@ AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_SUN, [test "x$lto_plugin_use_symver" = xsun
> > AC_CHECK_HEADER(pthread.h,
> > [AC_DEFINE(HAVE_PTHREAD_H, 1, [Define to 1 if pthread.h is present.])])
> >
> > +dnl Test whether the compiler supports the -pthread option.
> > +AC_CACHE_CHECK([whether -pthread is supported],
> > +[lto_plugin_cv_lib_pthread],
> > +[CFLAGS_hold=$CFLAGS
> > +CFLAGS="$CFLAGS -pthread -L../$build/libatomic/.libs"
> > +AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
> > +[lto_plugin_cv_lib_pthread=yes],
> > +[lto_plugin_cv_lib_pthread=no])
> > +CFLAGS=$CFLAGS_hold])
> > +PTHREAD_CFLAGS=
> > +if test "$libgo_cv_lib_pthread" = yes; then
> > + # RISC-V apparently adds -latomic when using -pthread.
> > + PTHREAD_CFLAGS="-pthread -L../$build/libatomic/.libs"
> > +fi
> > +AC_SUBST(PTHREAD_CFLAGS)
> > +
> > +
> > AM_PROG_LIBTOOL
> > ACX_LT_HOST_FLAGS
> > AC_SUBST(target_noncanonical)
> > --
> > 2.36.1
> >
next prev parent reply other threads:[~2022-07-04 12:29 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-04 11:32 Martin Liška
2022-07-04 12:28 ` Richard Biener
2022-07-04 12:28 ` Richard Biener [this message]
2022-07-04 13:09 ` Martin Liška
2022-07-05 7:27 ` Richard Biener
2022-07-07 11:43 ` [PATCH] lto-plugin: use locking only for selected targets Martin Liška
2022-07-07 11:46 ` Richard Biener
2022-07-07 11:52 ` Rainer Orth
2022-07-07 13:18 ` Martin Liška
2022-07-07 13:18 ` Martin Liška
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=CAFiYyc3QPg-fvpG3e5HZJxhiAkuP0yKidTdP7P865npwdhP7BA@mail.gmail.com \
--to=richard.guenther@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=kito.cheng@gmail.com \
--cc=mliska@suse.cz \
/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).