public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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
> >

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