runtime: add the --without-libatomic configure option

This adds the --without-libatomic configure option, which is useful for building libgo
with a non-gcc compiler.

It disables libgo's dependency on libatomic. This
is useful for platforms where it is known that the libatomic runtime
functions are not required, or where the compiler automatically
provides an implementation of them.

From-SVN: r211065
This commit is contained in:
Ian Lance Taylor 2014-05-29 20:22:27 +00:00
parent cc8849a159
commit 9a85ed03da
5 changed files with 46 additions and 9 deletions

View File

@ -30,6 +30,8 @@ toolexeclibgodir = $(nover_glibgo_toolexeclibdir)/go/$(gcc_version)/$(target_ali
LIBFFI = @LIBFFI@
LIBFFIINCS = @LIBFFIINCS@
LIBATOMIC = @LIBATOMIC@
WARN_CFLAGS = $(WARN_FLAGS) $(WERROR)
# -I/-D flags to pass when compiling.
@ -1949,8 +1951,7 @@ libgo_la_LDFLAGS = \
libgo_la_LIBADD = \
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
../libatomic/libatomic_convenience.la \
$(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
libgobegin_a_SOURCES = \
runtime/go-main.c

View File

@ -171,10 +171,9 @@ am__DEPENDENCIES_2 = bufio.lo bytes.lo bytes/index.lo crypto.lo \
testing/iotest.lo testing/quick.lo unicode/utf16.lo \
unicode/utf8.lo
libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \
../libbacktrace/libbacktrace.la \
../libatomic/libatomic_convenience.la $(am__DEPENDENCIES_1) \
../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
@LIBGO_IS_LINUX_FALSE@am__objects_1 = lock_sema.lo thread-sema.lo
@LIBGO_IS_LINUX_TRUE@am__objects_1 = lock_futex.lo thread-linux.lo
@HAVE_SYS_MMAN_H_FALSE@am__objects_2 = mem_posix_memalign.lo
@ -316,6 +315,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBATOMIC = @LIBATOMIC@
LIBFFI = @LIBFFI@
LIBFFIINCS = @LIBFFIINCS@
LIBOBJS = @LIBOBJS@
@ -2020,8 +2020,7 @@ libgo_la_LDFLAGS = \
libgo_la_LIBADD = \
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
../libatomic/libatomic_convenience.la \
$(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
libgobegin_a_SOURCES = \
runtime/go-main.c

25
libgo/configure vendored
View File

@ -676,6 +676,7 @@ LIBGO_IS_FREEBSD_TRUE
LIBGO_IS_DARWIN_FALSE
LIBGO_IS_DARWIN_TRUE
go_include
LIBATOMIC
LIBFFIINCS
LIBFFI
nover_glibgo_toolexeclibdir
@ -817,6 +818,7 @@ enable_libtool_lock
enable_werror
enable_version_specific_runtime_libs
with_libffi
with_libatomic
with_system_libunwind
enable_sjlj_exceptions
'
@ -1469,6 +1471,7 @@ Optional Packages:
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--without-libffi don't use libffi
--without-libatomic don't use libatomic
--with-system-libunwind use installed libunwind
Some influential environment variables:
@ -11115,7 +11118,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11118 "configure"
#line 11121 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -11221,7 +11224,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11224 "configure"
#line 11227 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -13483,6 +13486,24 @@ fi
# See if the user wants to configure without libatomic. This is useful if we are
# on an architecture for which libgo does not need an atomic support library and
# libatomic does not support our C compiler.
# Check whether --with-libatomic was given.
if test "${with_libatomic+set}" = set; then :
withval=$with_libatomic; :
else
with_libatomic=${with_libatomic_default-yes}
fi
LIBATOMIC=
if test "$with_libatomic" != no; then
LIBATOMIC=../libatomic/libatomic_convenience.la
fi
# Used to tell GNU make to include a file without telling automake to
# include it.
go_include="-include"

View File

@ -122,6 +122,21 @@ fi
AC_SUBST(LIBFFI)
AC_SUBST(LIBFFIINCS)
# See if the user wants to configure without libatomic. This is useful if we are
# on an architecture for which libgo does not need an atomic support library and
# libatomic does not support our C compiler.
AC_ARG_WITH(libatomic,
AS_HELP_STRING([--without-libatomic],
[don't use libatomic]),
[:],
[with_libatomic=${with_libatomic_default-yes}])
LIBATOMIC=
if test "$with_libatomic" != no; then
LIBATOMIC=../libatomic/libatomic_convenience.la
fi
AC_SUBST(LIBATOMIC)
# Used to tell GNU make to include a file without telling automake to
# include it.
go_include="-include"

View File

@ -96,6 +96,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBATOMIC = @LIBATOMIC@
LIBFFI = @LIBFFI@
LIBFFIINCS = @LIBFFIINCS@
LIBOBJS = @LIBOBJS@