Skip to content

Commit 15f7c58

Browse files
libgo: use -Wc,-shared-libgcc on Solaris
Patch from Rainer Orth. For GCC PR go/64900 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/731482
1 parent 68501f9 commit 15f7c58

File tree

6 files changed

+28
-5
lines changed

6 files changed

+28
-5
lines changed

gcc/go/gofrontend/MERGE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ace35ffba59c926d401a6d3f918bd3c85f48c8fd
1+
6e421340885c87c4987f27be4a16b7bedb86faaa
22

33
The first line of this file holds the git revision number of the last
44
merge done from the gofrontend repository.

libgo/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -837,7 +837,8 @@ libgo_go_objs = \
837837
$(golangorg_x_sys_cpu_gccgo_x86_lo)
838838

839839
libgo_ldflags = \
840-
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
840+
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS) \
841+
$(OSLDFLAGS)
841842

842843
libgo_libadd = \
843844
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \

libgo/Makefile.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ OBJCOPY = @OBJCOPY@
453453
OBJDUMP = @OBJDUMP@
454454
OBJEXT = @OBJEXT@
455455
OSCFLAGS = @OSCFLAGS@
456+
OSLDFLAGS = @OSLDFLAGS@
456457
OTOOL = @OTOOL@
457458
OTOOL64 = @OTOOL64@
458459
PACKAGE = @PACKAGE@
@@ -972,7 +973,8 @@ libgo_go_objs = \
972973
$(golangorg_x_sys_cpu_gccgo_x86_lo)
973974

974975
libgo_ldflags = \
975-
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS)
976+
-version-info $(libtool_VERSION) $(PTHREAD_CFLAGS) $(AM_LDFLAGS) \
977+
$(OSLDFLAGS)
976978

977979
libgo_libadd = \
978980
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \

libgo/configure

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -658,6 +658,7 @@ GO_SPLIT_STACK
658658
USING_SPLIT_STACK_FALSE
659659
USING_SPLIT_STACK_TRUE
660660
SPLIT_STACK
661+
OSLDFLAGS
661662
HWCAP_CFLAGS
662663
OSCFLAGS
663664
GO_SYSCALL_OS_ARCH_FILE
@@ -11547,7 +11548,7 @@ else
1154711548
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1154811549
lt_status=$lt_dlunknown
1154911550
cat > conftest.$ac_ext <<_LT_EOF
11550-
#line 11550 "configure"
11551+
#line 11551 "configure"
1155111552
#include "confdefs.h"
1155211553

1155311554
#if HAVE_DLFCN_H
@@ -11653,7 +11654,7 @@ else
1165311654
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
1165411655
lt_status=$lt_dlunknown
1165511656
cat > conftest.$ac_ext <<_LT_EOF
11656-
#line 11656 "configure"
11657+
#line 11657 "configure"
1165711658
#include "confdefs.h"
1165811659

1165911660
#if HAVE_DLFCN_H
@@ -14457,6 +14458,15 @@ $as_echo "$ac_hwcap_flags" >&6; }
1445714458

1445814459

1445914460

14461+
case "$target" in
14462+
*86*-*-solaris2.*)
14463+
# Link with -shared-libgcc on Solaris 11+/x86 as a workaround for
14464+
# PR go/64900.
14465+
OSLDFLAGS="-Wc,-shared-libgcc"
14466+
;;
14467+
esac
14468+
14469+
1446014470
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fsplit-stack is supported" >&5
1446114471
$as_echo_n "checking whether -fsplit-stack is supported... " >&6; }
1446214472
if ${libgo_cv_c_split_stack_supported+:} false; then :

libgo/configure.ac

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,15 @@ AC_SUBST(OSCFLAGS)
442442
dnl Check if assembler supports disabling hardware capability support.
443443
GCC_CHECK_ASSEMBLER_HWCAP
444444

445+
case "$target" in
446+
*86*-*-solaris2.*)
447+
# Link with -shared-libgcc on Solaris 11+/x86 as a workaround for
448+
# PR go/64900.
449+
OSLDFLAGS="-Wc,-shared-libgcc"
450+
;;
451+
esac
452+
AC_SUBST(OSLDFLAGS)
453+
445454
dnl Use -fsplit-stack when compiling C code if available.
446455
AC_CACHE_CHECK([whether -fsplit-stack is supported],
447456
[libgo_cv_c_split_stack_supported],

libgo/testsuite/Makefile.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,7 @@ OBJCOPY = @OBJCOPY@
202202
OBJDUMP = @OBJDUMP@
203203
OBJEXT = @OBJEXT@
204204
OSCFLAGS = @OSCFLAGS@
205+
OSLDFLAGS = @OSLDFLAGS@
205206
OTOOL = @OTOOL@
206207
OTOOL64 = @OTOOL64@
207208
PACKAGE = @PACKAGE@

0 commit comments

Comments
 (0)