]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgo: fix build when using -enable-static=no
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 20 Sep 2017 23:31:00 +0000 (23:31 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 20 Sep 2017 23:31:00 +0000 (23:31 +0000)
    With -enable-static=no we don't build non-pic objects, but libgotool.a
    is built from non-pic objects.  Build the packages that go into
    libgotool.a in static mode in all cases.

    Also ensure that internal test packages are built, since nothing
    explicitly depended on them.

    Reviewed-on: https://go-review.googlesource.com/65050

From-SVN: r253042

gcc/go/gofrontend/MERGE
libgo/Makefile.am
libgo/Makefile.in

index 06f8d6212103314223e4c21e4e64ef721f58e5fc..5b3206abc86689298a1d546f690292087ed6650c 100644 (file)
@@ -1,4 +1,4 @@
-5deeab42b0e5fdf2721773ce7fdaf61716599d4d
+1fcb9bb3cefb97cfab1e623826a1cc3f6aadd5f7
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 23761302f47ee0c4bdea69b85fda6afe91b9a16b..336071d3d1666d0d388dce05769ca4d3ba8775ab 100644 (file)
@@ -395,6 +395,13 @@ toolexeclibgounicode_DATA = \
        unicode/utf16.gox \
        unicode/utf8.gox
 
+# Some packages are only needed for tests, so unlike the other
+# internal packages nothing will explicitly depend on them.
+# Force them to be built.
+noinst_DATA = \
+       internal/testenv.gox \
+       net/internal/socktest.gox
+
 if LIBGO_IS_RTEMS
 rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
 else
@@ -573,7 +580,7 @@ s-runtime-inc: runtime.lo Makefile
        rm -f runtime.inc.tmp2 runtime.inc.tmp3
        $(STAMP) $@
 
-noinst_DATA = zstdpkglist.go zdefaultcc.go
+noinst_DATA += zstdpkglist.go zdefaultcc.go
 
 # Generate the list of go std packages that were included in libgo
 zstdpkglist.go: s-zstdpkglist; @true
@@ -924,6 +931,12 @@ libgotool_a_SOURCES =
 libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
 libgotool_a_LIBADD = $(addsuffix .o,$(GOTOOL_PACKAGES))
 
+define STATIC_template
+$(subst -,_,$(subst .,_,$(subst /,_,$(1))))_GOCFLAGS = -static
+endef
+
+$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call STATIC_template,$(package).lo)))
+
 # Make sure runtime.inc is built before compiling any .c file.
 $(libgo_la_OBJECTS): runtime.inc
 $(libgo_llgo_la_OBJECTS): runtime.inc
index 5f7adb21dd293f171c7848e27ae648c915423795..3ace02d8c14a709d9389ea52d0547aaf41745149 100644 (file)
@@ -765,6 +765,12 @@ toolexeclibgounicode_DATA = \
        unicode/utf16.gox \
        unicode/utf8.gox
 
+
+# Some packages are only needed for tests, so unlike the other
+# internal packages nothing will explicitly depend on them.
+# Force them to be built.
+noinst_DATA = internal/testenv.gox net/internal/socktest.gox \
+       zstdpkglist.go zdefaultcc.go
 @LIBGO_IS_RTEMS_FALSE@rtems_task_variable_add_file = 
 @LIBGO_IS_RTEMS_TRUE@rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
 @LIBGO_IS_AIX_FALSE@@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@runtime_getncpu_file = runtime/getncpu-none.c
@@ -817,7 +823,6 @@ runtime_files = \
 GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)')
 GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
 GXX_INSTALL_NAME := $(shell echo g++|sed '$(program_transform_name)')
-noinst_DATA = zstdpkglist.go zdefaultcc.go
 @LIBGO_IS_LINUX_FALSE@syscall_epoll_file = 
 @LIBGO_IS_LINUX_TRUE@syscall_epoll_file = epoll.go
 SYSINFO_FLAGS = \
@@ -3248,6 +3253,12 @@ s-epoll: Makefile
        $(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go
        $(STAMP) $@
 
+define STATIC_template
+$(subst -,_,$(subst .,_,$(subst /,_,$(1))))_GOCFLAGS = -static
+endef
+
+$(foreach package,$(GOTOOL_PACKAGES),$(eval $(call STATIC_template,$(package).lo)))
+
 # Make sure runtime.inc is built before compiling any .c file.
 $(libgo_la_OBJECTS): runtime.inc
 $(libgo_llgo_la_OBJECTS): runtime.inc