On Mon, Jul 4, 2022 at 1:32 PM Martin Liška <mli...@suse.cz> wrote: > > Similarly to libgo, we need to provide -L for targets where > libpthread does depends on libatomic. > > Ready for master?
OK > 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 >