From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id AC80D385BADD for ; Mon, 4 Jul 2022 11:32:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AC80D385BADD Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 64E2122351; Mon, 4 Jul 2022 11:32:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1656934327; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lIbEzV7Y80bVlsu6hwijeImCCbJueXNCs+7QJz/Ett8=; b=yB7HlkfKojN8Ww9tZKWp7aky7YJglQONbxsFrpbk+X3rZ8zUTdGKhQq5n1Trk/lCwU3Yk4 Nn6Kz7h+gXr1QVuKEyjqyf+OZGbVeRgq1i+EOsgPamq9OrCFW94p+dYmjWm9nuD+sWhbuW /keISv92hu6ISGfZ5cbRcuM+SdhveiQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1656934327; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lIbEzV7Y80bVlsu6hwijeImCCbJueXNCs+7QJz/Ett8=; b=02ZF3yRcUHLCobdIYf89U9I/dY2HwkuHO5zXsM75MhOYMIEV38sPjSQpBq4Dplwucw9EGZ fPT9CHIlr8p19SCw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 4D35413451; Mon, 4 Jul 2022 11:32:07 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id P7nJEbfPwmJ+EwAAMHmgww (envelope-from ); Mon, 04 Jul 2022 11:32:07 +0000 Message-ID: <31c1c05e-79c6-01d5-4fc1-d401f8b52384@suse.cz> Date: Mon, 4 Jul 2022 13:32:06 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Subject: [PATCH] lto-plugin: Add path to libatomic for riscv64 To: gcc-patches@gcc.gnu.org Content-Language: en-US Cc: Kito Cheng , jim.wilson.gcc@gmail.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: Mon, 04 Jul 2022 11:32:14 -0000 Similarly to libgo, we need to provide -L for targets where libpthread does depends on libatomic. Ready for master? 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