From c3c54e0f074083d3bdfe97153a704f5584ec3fa4 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 13 Dec 2016 18:03:45 +0000 Subject: [PATCH] libgo: fixes for Solaris build Don't put m[0-4] in runtime.inc. Pass -mclear-hwcap to the linker if supported. From Rainer Orth. Reviewed-on: https://go-review.googlesource.com/34331 From-SVN: r243619 --- gcc/go/gofrontend/MERGE | 2 +- libgo/Makefile.am | 6 ++-- libgo/Makefile.in | 13 +++++---- libgo/aclocal.m4 | 1 + libgo/configure | 58 +++++++++++++++++++++++++++++++++++-- libgo/configure.ac | 3 ++ libgo/testsuite/Makefile.in | 2 ++ 7 files changed, 75 insertions(+), 10 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index e51276861c6..7f2ed5d6a3f 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -ac59bb383e1b446c68465af793722dd0e84abefb +556a546ba3c7bb14bd1b9b8469ee3b7a914909f6 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/Makefile.am b/libgo/Makefile.am index b9aee9d657d..1f5a0212a82 100644 --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -46,8 +46,10 @@ AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ -I $(MULTIBUILDTOP)../../gcc/include +AM_LDFLAGS = $(HWCAP_LDFLAGS) + if USING_SPLIT_STACK -AM_LDFLAGS = -XCClinker $(SPLIT_STACK) +AM_LDFLAGS += -XCClinker $(SPLIT_STACK) endif # Multilib support. @@ -561,7 +563,7 @@ s-sigtab: $(srcdir)/mksigtab.sh gen-sysinfo.go runtime.inc: s-runtime-inc; @true s-runtime-inc: runtime.lo Makefile rm -f runtime.inc.tmp2 - grep -v "#define _" runtime.inc.tmp | grep -v "#define c[01] " > runtime.inc.tmp2 + grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " > runtime.inc.tmp2 for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \ grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \ done diff --git a/libgo/Makefile.in b/libgo/Makefile.in index 86d7aa84e7d..a161fd7f2fa 100644 --- a/libgo/Makefile.in +++ b/libgo/Makefile.in @@ -62,8 +62,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ -@GOC_IS_LLGO_TRUE@am__append_1 = libgo-llgo.la libgobegin-llgo.a -@GOC_IS_LLGO_FALSE@am__append_2 = libgo.la libgobegin.a +@USING_SPLIT_STACK_TRUE@am__append_1 = -XCClinker $(SPLIT_STACK) +@GOC_IS_LLGO_TRUE@am__append_2 = libgo-llgo.la libgobegin-llgo.a +@GOC_IS_LLGO_FALSE@am__append_3 = libgo.la libgobegin.a subdir = . DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ @@ -71,6 +72,7 @@ DIST_COMMON = README $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/../depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -319,6 +321,7 @@ GO_SPLIT_STACK = @GO_SPLIT_STACK@ GO_SYSCALL_OS_ARCH_FILE = @GO_SYSCALL_OS_ARCH_FILE@ GO_SYSCALL_OS_FILE = @GO_SYSCALL_OS_FILE@ GREP = @GREP@ +HWCAP_LDFLAGS = @HWCAP_LDFLAGS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ @@ -460,7 +463,7 @@ AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ -I $(MULTIBUILDTOP)../../gcc/include -@USING_SPLIT_STACK_TRUE@AM_LDFLAGS = -XCClinker $(SPLIT_STACK) +AM_LDFLAGS = $(HWCAP_LDFLAGS) $(am__append_1) # Multilib support. MAKEOVERRIDES = @@ -1117,7 +1120,7 @@ CHECK_DEPS = $(toolexeclibgo_DATA) $(toolexeclibgoarchive_DATA) \ $(toolexeclibgorpc_DATA) $(toolexeclibgoruntime_DATA) \ $(toolexeclibgosync_DATA) $(toolexeclibgotesting_DATA) \ $(toolexeclibgotext_DATA) $(toolexeclibgotexttemplate_DATA) \ - $(toolexeclibgounicode_DATA) $(am__append_1) $(am__append_2) + $(toolexeclibgounicode_DATA) $(am__append_2) $(am__append_3) # Pass -ffp-contract=off, or 386-specific options, when building the # math package. MATH_FLAG is defined in configure.ac. @@ -3173,7 +3176,7 @@ s-sigtab: $(srcdir)/mksigtab.sh gen-sysinfo.go runtime.inc: s-runtime-inc; @true s-runtime-inc: runtime.lo Makefile rm -f runtime.inc.tmp2 - grep -v "#define _" runtime.inc.tmp | grep -v "#define c[01] " > runtime.inc.tmp2 + grep -v "#define _" runtime.inc.tmp | grep -v "#define [cm][01234] " > runtime.inc.tmp2 for pattern in '_[GP][a-z]' _Max _Lock _Sig _Trace _MHeap _Num; do \ grep "#define $$pattern" runtime.inc.tmp >> runtime.inc.tmp2; \ done diff --git a/libgo/aclocal.m4 b/libgo/aclocal.m4 index aefbad20a0b..07305fd701e 100644 --- a/libgo/aclocal.m4 +++ b/libgo/aclocal.m4 @@ -989,6 +989,7 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/depstand.m4]) +m4_include([../config/hwcaps.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/libgo/configure b/libgo/configure index 7789c120a9b..4129ebed0ff 100755 --- a/libgo/configure +++ b/libgo/configure @@ -624,6 +624,9 @@ GO_SPLIT_STACK USING_SPLIT_STACK_FALSE USING_SPLIT_STACK_TRUE SPLIT_STACK +HAVE_HWCAP_FALSE +HAVE_HWCAP_TRUE +HWCAP_LDFLAGS OSCFLAGS GO_SYSCALL_OS_ARCH_FILE GO_SYSCALL_OS_FILE @@ -11103,7 +11106,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11106 "configure" +#line 11109 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11209,7 +11212,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11212 "configure" +#line 11215 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -13908,6 +13911,53 @@ case "$target" in esac + + test -z "$HWCAP_LDFLAGS" && HWCAP_LDFLAGS='' + + + ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LFLAGS -mclear-hwcap" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mclear-hwcap" >&5 +$as_echo_n "checking for -mclear-hwcap... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_hwcap_ldflags=yes +else + ac_hwcap_ldflags=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$ac_hwcap_ldflags" = "yes"; then + HWCAP_LDFLAGS="-mclear-hwcap $HWCAP_LDFLAGS" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_hwcap_ldflags" >&5 +$as_echo "$ac_hwcap_ldflags" >&6; } + + LDFLAGS="$ac_save_LDFLAGS" + + + + if test $ac_hwcap_ldflags != no; then + HAVE_HWCAP_TRUE= + HAVE_HWCAP_FALSE='#' +else + HAVE_HWCAP_TRUE='#' + HAVE_HWCAP_FALSE= +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fsplit-stack is supported" >&5 $as_echo_n "checking whether -fsplit-stack is supported... " >&6; } if test "${libgo_cv_c_split_stack_supported+set}" = set; then : @@ -15688,6 +15738,10 @@ if test -z "${LIBGO_IS_BSD_TRUE}" && test -z "${LIBGO_IS_BSD_FALSE}"; then as_fn_error "conditional \"LIBGO_IS_BSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_HWCAP_TRUE}" && test -z "${HAVE_HWCAP_FALSE}"; then + as_fn_error "conditional \"HAVE_HWCAP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${USING_SPLIT_STACK_TRUE}" && test -z "${USING_SPLIT_STACK_FALSE}"; then as_fn_error "conditional \"USING_SPLIT_STACK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff --git a/libgo/configure.ac b/libgo/configure.ac index 77a744ea418..b7710cad038 100644 --- a/libgo/configure.ac +++ b/libgo/configure.ac @@ -421,6 +421,9 @@ case "$target" in esac AC_SUBST(OSCFLAGS) +dnl Check linker hardware capability support. +GCC_CHECK_LINKER_HWCAP + dnl Use -fsplit-stack when compiling C code if available. AC_CACHE_CHECK([whether -fsplit-stack is supported], [libgo_cv_c_split_stack_supported], diff --git a/libgo/testsuite/Makefile.in b/libgo/testsuite/Makefile.in index 6c82a639d5f..f059021ee48 100644 --- a/libgo/testsuite/Makefile.in +++ b/libgo/testsuite/Makefile.in @@ -55,6 +55,7 @@ subdir = testsuite DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -123,6 +124,7 @@ GO_SPLIT_STACK = @GO_SPLIT_STACK@ GO_SYSCALL_OS_ARCH_FILE = @GO_SYSCALL_OS_ARCH_FILE@ GO_SYSCALL_OS_FILE = @GO_SYSCALL_OS_FILE@ GREP = @GREP@ +HWCAP_LDFLAGS = @HWCAP_LDFLAGS@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ -- 2.30.2