Commit 7399e345 by Ian Lance Taylor

libgo: fix build when using -enable-static=no

    
    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
parent 073809a7
5deeab42b0e5fdf2721773ce7fdaf61716599d4d 1fcb9bb3cefb97cfab1e623826a1cc3f6aadd5f7
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -395,6 +395,13 @@ toolexeclibgounicode_DATA = \ ...@@ -395,6 +395,13 @@ toolexeclibgounicode_DATA = \
unicode/utf16.gox \ unicode/utf16.gox \
unicode/utf8.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 if LIBGO_IS_RTEMS
rtems_task_variable_add_file = runtime/rtems-task-variable-add.c rtems_task_variable_add_file = runtime/rtems-task-variable-add.c
else else
...@@ -573,7 +580,7 @@ s-runtime-inc: runtime.lo Makefile ...@@ -573,7 +580,7 @@ s-runtime-inc: runtime.lo Makefile
rm -f runtime.inc.tmp2 runtime.inc.tmp3 rm -f runtime.inc.tmp2 runtime.inc.tmp3
$(STAMP) $@ $(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 # Generate the list of go std packages that were included in libgo
zstdpkglist.go: s-zstdpkglist; @true zstdpkglist.go: s-zstdpkglist; @true
...@@ -924,6 +931,12 @@ libgotool_a_SOURCES = ...@@ -924,6 +931,12 @@ libgotool_a_SOURCES =
libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES)) libgotool_a_DEPENDENCIES = $(addsuffix .lo,$(GOTOOL_PACKAGES))
libgotool_a_LIBADD = $(addsuffix .o,$(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. # Make sure runtime.inc is built before compiling any .c file.
$(libgo_la_OBJECTS): runtime.inc $(libgo_la_OBJECTS): runtime.inc
$(libgo_llgo_la_OBJECTS): runtime.inc $(libgo_llgo_la_OBJECTS): runtime.inc
......
...@@ -765,6 +765,12 @@ toolexeclibgounicode_DATA = \ ...@@ -765,6 +765,12 @@ toolexeclibgounicode_DATA = \
unicode/utf16.gox \ unicode/utf16.gox \
unicode/utf8.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_FALSE@rtems_task_variable_add_file =
@LIBGO_IS_RTEMS_TRUE@rtems_task_variable_add_file = runtime/rtems-task-variable-add.c @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 @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 = \ ...@@ -817,7 +823,6 @@ runtime_files = \
GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)') GCCGO_INSTALL_NAME := $(shell echo gccgo|sed '$(program_transform_name)')
GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)') GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
GXX_INSTALL_NAME := $(shell echo g++|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_FALSE@syscall_epoll_file =
@LIBGO_IS_LINUX_TRUE@syscall_epoll_file = epoll.go @LIBGO_IS_LINUX_TRUE@syscall_epoll_file = epoll.go
SYSINFO_FLAGS = \ SYSINFO_FLAGS = \
...@@ -3248,6 +3253,12 @@ s-epoll: Makefile ...@@ -3248,6 +3253,12 @@ s-epoll: Makefile
$(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go $(SHELL) $(srcdir)/mvifdiff.sh epoll.go.tmp epoll.go
$(STAMP) $@ $(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. # Make sure runtime.inc is built before compiling any .c file.
$(libgo_la_OBJECTS): runtime.inc $(libgo_la_OBJECTS): runtime.inc
$(libgo_llgo_la_OBJECTS): runtime.inc $(libgo_llgo_la_OBJECTS): runtime.inc
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment