Preliminary framework for Solaris support.

Partly from Rainer Orth.

From-SVN: r168697
This commit is contained in:
Ian Lance Taylor 2011-01-12 06:34:08 +00:00
parent c3b5b97b64
commit f2ee78b861
15 changed files with 423 additions and 76 deletions

View File

@ -1188,7 +1188,8 @@ libgo_go_objs = \
libgo_la_SOURCES = $(runtime_files) libgo_la_SOURCES = $(runtime_files)
libgo_la_LIBADD = $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) libgo_la_LIBADD = \
$(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
libgobegin_a_SOURCES = \ libgobegin_a_SOURCES = \
runtime/go-main.c runtime/go-main.c
@ -1203,8 +1204,7 @@ LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
$(AM_GOCFLAGS) $(GOCFLAGS) $(AM_GOCFLAGS) $(GOCFLAGS)
GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \ GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) \ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) -o $@
$(PTHREAD_LIBS) $(MATH_LIBS) -o $@
# Build a package. # Build a package.
BUILDARCHIVE = \ BUILDARCHIVE = \

View File

@ -121,7 +121,8 @@ libgobegin_a_OBJECTS = $(am_libgobegin_a_OBJECTS)
LTLIBRARIES = $(toolexeclib_LTLIBRARIES) LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
am__DEPENDENCIES_1 = am__DEPENDENCIES_1 =
libgo_la_DEPENDENCIES = $(libgo_go_objs) $(am__DEPENDENCIES_1) \ libgo_la_DEPENDENCIES = $(libgo_go_objs) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1)
am__libgo_la_SOURCES_DIST = runtime/go-append.c runtime/go-assert.c \ am__libgo_la_SOURCES_DIST = runtime/go-append.c runtime/go-assert.c \
runtime/go-assert-interface.c \ runtime/go-assert-interface.c \
runtime/go-byte-array-to-string.c runtime/go-breakpoint.c \ runtime/go-byte-array-to-string.c runtime/go-breakpoint.c \
@ -329,6 +330,7 @@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MATH_LIBS = @MATH_LIBS@ MATH_LIBS = @MATH_LIBS@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NET_LIBS = @NET_LIBS@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
OBJCOPY = @OBJCOPY@ OBJCOPY = @OBJCOPY@
@ -1541,7 +1543,9 @@ libgo_go_objs = \
testing/libscript.la testing/libscript.la
libgo_la_SOURCES = $(runtime_files) libgo_la_SOURCES = $(runtime_files)
libgo_la_LIBADD = $(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) libgo_la_LIBADD = \
$(libgo_go_objs) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
libgobegin_a_SOURCES = \ libgobegin_a_SOURCES = \
runtime/go-main.c runtime/go-main.c
@ -1552,8 +1556,7 @@ LTGOCOMPILE = $(LIBTOOL) --tag GO --mode=compile $(GOC) $(INCLUDES) \
$(AM_GOCFLAGS) $(GOCFLAGS) $(AM_GOCFLAGS) $(GOCFLAGS)
GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \ GOLINK = $(LIBTOOL) --tag GO --mode-link $(GOC) \
$(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) \ $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_GOCFLAGS) $(LTLDFLAGS) -o $@
$(PTHREAD_LIBS) $(MATH_LIBS) -o $@
# Build a package. # Build a package.

272
libgo/configure vendored
View File

@ -607,18 +607,25 @@ HAVE_SYS_MMAN_H_FALSE
HAVE_SYS_MMAN_H_TRUE HAVE_SYS_MMAN_H_TRUE
PTHREAD_LIBS PTHREAD_LIBS
PTHREAD_CFLAGS PTHREAD_CFLAGS
NET_LIBS
MATH_LIBS MATH_LIBS
USING_SPLIT_STACK_FALSE USING_SPLIT_STACK_FALSE
USING_SPLIT_STACK_TRUE USING_SPLIT_STACK_TRUE
SPLIT_STACK SPLIT_STACK
GOARCH GOARCH
LIBGO_IS_ARM_FALSE
LIBGO_IS_ARM_TRUE
LIBGO_IS_X86_64_FALSE LIBGO_IS_X86_64_FALSE
LIBGO_IS_X86_64_TRUE LIBGO_IS_X86_64_TRUE
LIBGO_IS_SPARCV9_FALSE
LIBGO_IS_SPARCV9_TRUE
LIBGO_IS_SPARC_FALSE
LIBGO_IS_SPARC_TRUE
LIBGO_IS_ARM_FALSE
LIBGO_IS_ARM_TRUE
LIBGO_IS_386_FALSE LIBGO_IS_386_FALSE
LIBGO_IS_386_TRUE LIBGO_IS_386_TRUE
GOOS GOOS
LIBGO_IS_SOLARIS_FALSE
LIBGO_IS_SOLARIS_TRUE
LIBGO_IS_RTEMS_FALSE LIBGO_IS_RTEMS_FALSE
LIBGO_IS_RTEMS_TRUE LIBGO_IS_RTEMS_TRUE
LIBGO_IS_LINUX_FALSE LIBGO_IS_LINUX_FALSE
@ -10871,7 +10878,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 10874 "configure" #line 10881 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -10977,7 +10984,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 10980 "configure" #line 10987 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -13192,12 +13199,14 @@ is_darwin=no
is_freebsd=no is_freebsd=no
is_linux=no is_linux=no
is_rtems=no is_rtems=no
is_solaris=no
GOOS=unknown GOOS=unknown
case ${host} in case ${host} in
*-*-darwin*) is_darwin=yes; GOOS=darwin ;; *-*-darwin*) is_darwin=yes; GOOS=darwin ;;
*-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;; *-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;;
*-*-linux*) is_linux=yes; GOOS=linux ;; *-*-linux*) is_linux=yes; GOOS=linux ;;
*-*-rtems*) is_rtems=yes; GOOS=rtems ;; *-*-rtems*) is_rtems=yes; GOOS=rtems ;;
*-*-solaris2*) is_solaris=yes; GOOS=solaris ;;
esac esac
if test $is_darwin = yes; then if test $is_darwin = yes; then
LIBGO_IS_DARWIN_TRUE= LIBGO_IS_DARWIN_TRUE=
@ -13231,11 +13240,21 @@ else
LIBGO_IS_RTEMS_FALSE= LIBGO_IS_RTEMS_FALSE=
fi fi
if test $is_solaris = yes; then
LIBGO_IS_SOLARIS_TRUE=
LIBGO_IS_SOLARIS_FALSE='#'
else
LIBGO_IS_SOLARIS_TRUE='#'
LIBGO_IS_SOLARIS_FALSE=
fi
is_386=no is_386=no
is_x86_64=no
is_arm=no is_arm=no
is_sparc=no
is_sparcv9=no
is_x86_64=no
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
i[34567]86-*-* | x86_64-*-*) i[34567]86-*-* | x86_64-*-*)
@ -13253,8 +13272,10 @@ else
fi fi
rm -f conftest.err conftest.$ac_ext rm -f conftest.err conftest.$ac_ext
if test "$is_386" = "yes"; then if test "$is_386" = "yes"; then
is_386=yes
GOARCH=386 GOARCH=386
else else
is_x86_64=yes
GOARCH=amd64 GOARCH=amd64
fi fi
;; ;;
@ -13262,6 +13283,28 @@ rm -f conftest.err conftest.$ac_ext
is_arm=yes is_arm=yes
GOARCH=arm GOARCH=arm
;; ;;
sparc*-*-*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined(__sparcv9) || defined(__arch64__)
#error 64-bit
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"; then :
is_sparc=yes
else
is_sparcv9=yes
fi
rm -f conftest.err conftest.$ac_ext
if test "$is_sparc" = "yes"; then
is_sparc=yes
GOARCH=sparc
else
is_sparcv9=yes
GOARCH=sparcv9
fi
;;
esac esac
if test $is_386 = yes; then if test $is_386 = yes; then
LIBGO_IS_386_TRUE= LIBGO_IS_386_TRUE=
@ -13271,14 +13314,6 @@ else
LIBGO_IS_386_FALSE= LIBGO_IS_386_FALSE=
fi fi
if test $is_x86_64 = yes; then
LIBGO_IS_X86_64_TRUE=
LIBGO_IS_X86_64_FALSE='#'
else
LIBGO_IS_X86_64_TRUE='#'
LIBGO_IS_X86_64_FALSE=
fi
if test $is_arm = yes; then if test $is_arm = yes; then
LIBGO_IS_ARM_TRUE= LIBGO_IS_ARM_TRUE=
LIBGO_IS_ARM_FALSE='#' LIBGO_IS_ARM_FALSE='#'
@ -13287,11 +13322,35 @@ else
LIBGO_IS_ARM_FALSE= LIBGO_IS_ARM_FALSE=
fi fi
if test $is_sparc = yes; then
LIBGO_IS_SPARC_TRUE=
LIBGO_IS_SPARC_FALSE='#'
else
LIBGO_IS_SPARC_TRUE='#'
LIBGO_IS_SPARC_FALSE=
fi
if test $isv_sparcv9 = yes; then
LIBGO_IS_SPARCV9_TRUE=
LIBGO_IS_SPARCV9_FALSE='#'
else
LIBGO_IS_SPARCV9_TRUE='#'
LIBGO_IS_SPARCV9_FALSE=
fi
if test $is_x86_64 = yes; then
LIBGO_IS_X86_64_TRUE=
LIBGO_IS_X86_64_FALSE='#'
else
LIBGO_IS_X86_64_TRUE='#'
LIBGO_IS_X86_64_FALSE=
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fsplit-stack is supported" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -fsplit-stack is supported" >&5
$as_echo_n "checking whether -fsplit-stack is supported... " >&6; } $as_echo_n "checking whether -fsplit-stack is supported... " >&6; }
if test "${ac_cv_libgo_split_stack_supported+set}" = set; then : if test "${libgo_cv_c_split_stack_supported+set}" = set; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
CFLAGS_hold=$CFLAGS CFLAGS_hold=$CFLAGS
@ -13301,16 +13360,16 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
int i; int i;
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO"; then : if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_libgo_split_stack_supported=yes libgo_cv_c_split_stack_supported=yes
else else
ac_cv_libgo_split_stack_supported=no libgo_cv_c_split_stack_supported=no
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS=$CFLAGS_hold CFLAGS=$CFLAGS_hold
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libgo_split_stack_supported" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_c_split_stack_supported" >&5
$as_echo "$ac_cv_libgo_split_stack_supported" >&6; } $as_echo "$libgo_cv_c_split_stack_supported" >&6; }
if test "$ac_cv_libgo_split_stack_supported" = yes; then if test "$libgo_cv_c_split_stack_supported" = yes; then
SPLIT_STACK=-fsplit-stack SPLIT_STACK=-fsplit-stack
$as_echo "#define USING_SPLIT_STACK 1" >>confdefs.h $as_echo "#define USING_SPLIT_STACK 1" >>confdefs.h
@ -13319,7 +13378,7 @@ else
SPLIT_STACK= SPLIT_STACK=
fi fi
if test "$ac_cv_libgo_split_stack_supported" = yes; then if test "$libgo_cv_c_split_stack_supported" = yes; then
USING_SPLIT_STACK_TRUE= USING_SPLIT_STACK_TRUE=
USING_SPLIT_STACK_FALSE='#' USING_SPLIT_STACK_FALSE='#'
else else
@ -13330,17 +13389,17 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker supports split stack" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linker supports split stack" >&5
$as_echo_n "checking whether linker supports split stack... " >&6; } $as_echo_n "checking whether linker supports split stack... " >&6; }
if test "${ac_cv_libgo_linker_supports_split_stack+set}" = set; then : if test "${libgo_cv_c_linker_supports_split_stack+set}" = set; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
ac_cv_libgo_linker_supports_split_stack=no libgo_cv_c_linker_supports_split_stack=no
if $LD --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then if $LD --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
ac_cv_libgo_linker_supports_split_stack=yes libgo_cv_c_linker_supports_split_stack=yes
fi fi
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libgo_linker_supports_split_stack" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_c_linker_supports_split_stack" >&5
$as_echo "$ac_cv_libgo_linker_supports_split_stack" >&6; } $as_echo "$libgo_cv_c_linker_supports_split_stack" >&6; }
if test "$ac_cv_libgo_linker_supports_split_stack" = yes; then if test "$libgo_cv_c_linker_supports_split_stack" = yes; then
$as_echo "#define LINKER_SUPPORTS_SPLIT_STACK 1" >>confdefs.h $as_echo "#define LINKER_SUPPORTS_SPLIT_STACK 1" >>confdefs.h
@ -13389,9 +13448,126 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket libraries" >&5
$as_echo_n "checking for socket libraries... " >&6; }
if test "${libgo_cv_lib_sockets+set}" = set; then :
$as_echo_n "(cached) " >&6
else
libgo_cv_lib_sockets=
libgo_check_both=no
ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect"
if test "x$ac_cv_func_connect" = x""yes; then :
libgo_check_socket=no
else
libgo_check_socket=yes
fi
if test "$libgo_check_socket" = "yes"; then
unset ac_cv_func_connect
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
$as_echo_n "checking for main in -lsocket... " >&6; }
if test "${ac_cv_lib_socket_main+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsocket $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
return main ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_socket_main=yes
else
ac_cv_lib_socket_main=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
$as_echo "$ac_cv_lib_socket_main" >&6; }
if test "x$ac_cv_lib_socket_main" = x""yes; then :
libgo_cv_lib_sockets="-lsocket"
else
libgo_check_both=yes
fi
fi
if test "$libgo_check_both" = "yes"; then
libgo_old_libs=$LIBS
LIBS="$LIBS -lsocket -lnsl"
unset ac_cv_func_accept
ac_fn_c_check_func "$LINENO" "accept" "ac_cv_func_accept"
if test "x$ac_cv_func_accept" = x""yes; then :
libgo_check_nsl=no
libgo_cv_lib_sockets="-lsocket -lnsl"
fi
unset ac_cv_func_accept
LIBS=$libgo_old_libs
fi
unset ac_cv_func_gethostbyname
libgo_old_libs="$LIBS"
ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname"
if test "x$ac_cv_func_gethostbyname" = x""yes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lnsl" >&5
$as_echo_n "checking for main in -lnsl... " >&6; }
if test "${ac_cv_lib_nsl_main+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnsl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
return main ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_nsl_main=yes
else
ac_cv_lib_nsl_main=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_main" >&5
$as_echo "$ac_cv_lib_nsl_main" >&6; }
if test "x$ac_cv_lib_nsl_main" = x""yes; then :
libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"
fi
fi
unset ac_cv_func_gethostbyname
LIBS=$libgo_old_libs
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_lib_sockets" >&5
$as_echo "$libgo_cv_lib_sockets" >&6; }
NET_LIBS="$libgo_cv_lib_sockets"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -pthread is supported" >&5
$as_echo_n "checking whether -pthread is supported... " >&6; } $as_echo_n "checking whether -pthread is supported... " >&6; }
if test "${ac_cv_libgo_pthread_supported+set}" = set; then : if test "${libgo_cv_lib_pthread+set}" = set; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
CFLAGS_hold=$CFLAGS CFLAGS_hold=$CFLAGS
@ -13401,17 +13577,17 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
int i; int i;
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO"; then : if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_libgo_pthread_supported=yes libgo_cv_lib_pthread=yes
else else
ac_cv_libgo_pthread_supported=no libgo_cv_lib_pthread=no
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS=$CFLAGS_hold CFLAGS=$CFLAGS_hold
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libgo_pthread_supported" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_lib_pthread" >&5
$as_echo "$ac_cv_libgo_pthread_supported" >&6; } $as_echo "$libgo_cv_lib_pthread" >&6; }
PTHREAD_CFLAGS= PTHREAD_CFLAGS=
if test "$ac_cv_libgo_pthread_supported" = yes; then if test "$libgo_cv_lib_pthread" = yes; then
PTHREAD_CFLAGS=-pthread PTHREAD_CFLAGS=-pthread
fi fi
@ -13759,7 +13935,7 @@ done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -minline-all-stringops" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports -minline-all-stringops" >&5
$as_echo_n "checking whether compiler supports -minline-all-stringops... " >&6; } $as_echo_n "checking whether compiler supports -minline-all-stringops... " >&6; }
if test "${ac_cv_libgo_compiler_supports_inline_all_stringops+set}" = set; then : if test "${libgo_cv_c_stringops+set}" = set; then :
$as_echo_n "(cached) " >&6 $as_echo_n "(cached) " >&6
else else
CFLAGS_hold=$CFLAGS CFLAGS_hold=$CFLAGS
@ -13769,17 +13945,17 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
int i; int i;
_ACEOF _ACEOF
if ac_fn_c_try_compile "$LINENO"; then : if ac_fn_c_try_compile "$LINENO"; then :
ac_cv_libgo_compiler_supports_inline_all_stringops=yes libgo_cv_c_stringops=yes
else else
ac_cv_libgo_compiler_supports_inline_all_stringops=no libgo_cv_c_stringops=no
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS=$CFLAGS_hold CFLAGS=$CFLAGS_hold
fi fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libgo_compiler_supports_inline_all_stringops" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libgo_cv_c_stringops" >&5
$as_echo "$ac_cv_libgo_compiler_supports_inline_all_stringops" >&6; } $as_echo "$libgo_cv_c_stringops" >&6; }
STRINGOPS_FLAG= STRINGOPS_FLAG=
if test "$ac_cv_libgo_compiler_supports_inline_all_stringops" = yes; then if test "$libgo_cv_c_stringops" = yes; then
STRINGOPS_FLAG=-minline-all-stringops STRINGOPS_FLAG=-minline-all-stringops
fi fi
@ -14018,18 +14194,30 @@ if test -z "${LIBGO_IS_RTEMS_TRUE}" && test -z "${LIBGO_IS_RTEMS_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_RTEMS\" was never defined. as_fn_error "conditional \"LIBGO_IS_RTEMS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi fi
if test -z "${LIBGO_IS_SOLARIS_TRUE}" && test -z "${LIBGO_IS_SOLARIS_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_SOLARIS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${LIBGO_IS_386_TRUE}" && test -z "${LIBGO_IS_386_FALSE}"; then if test -z "${LIBGO_IS_386_TRUE}" && test -z "${LIBGO_IS_386_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_386\" was never defined. as_fn_error "conditional \"LIBGO_IS_386\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi fi
if test -z "${LIBGO_IS_X86_64_TRUE}" && test -z "${LIBGO_IS_X86_64_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_X86_64\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${LIBGO_IS_ARM_TRUE}" && test -z "${LIBGO_IS_ARM_FALSE}"; then if test -z "${LIBGO_IS_ARM_TRUE}" && test -z "${LIBGO_IS_ARM_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_ARM\" was never defined. as_fn_error "conditional \"LIBGO_IS_ARM\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi fi
if test -z "${LIBGO_IS_SPARC_TRUE}" && test -z "${LIBGO_IS_SPARC_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_SPARC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${LIBGO_IS_SPARCV9_TRUE}" && test -z "${LIBGO_IS_SPARCV9_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_SPARCV9\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${LIBGO_IS_X86_64_TRUE}" && test -z "${LIBGO_IS_X86_64_FALSE}"; then
as_fn_error "conditional \"LIBGO_IS_X86_64\" 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 if test -z "${USING_SPLIT_STACK_TRUE}" && test -z "${USING_SPLIT_STACK_FALSE}"; then
as_fn_error "conditional \"USING_SPLIT_STACK\" was never defined. as_fn_error "conditional \"USING_SPLIT_STACK\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5

View File

@ -116,22 +116,28 @@ is_darwin=no
is_freebsd=no is_freebsd=no
is_linux=no is_linux=no
is_rtems=no is_rtems=no
is_solaris=no
GOOS=unknown GOOS=unknown
case ${host} in case ${host} in
*-*-darwin*) is_darwin=yes; GOOS=darwin ;; *-*-darwin*) is_darwin=yes; GOOS=darwin ;;
*-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;; *-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;;
*-*-linux*) is_linux=yes; GOOS=linux ;; *-*-linux*) is_linux=yes; GOOS=linux ;;
*-*-rtems*) is_rtems=yes; GOOS=rtems ;; *-*-rtems*) is_rtems=yes; GOOS=rtems ;;
*-*-solaris2*) is_solaris=yes; GOOS=solaris ;;
esac esac
AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes) AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes)
AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes) AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes)
AM_CONDITIONAL(LIBGO_IS_LINUX, test $is_linux = yes) AM_CONDITIONAL(LIBGO_IS_LINUX, test $is_linux = yes)
AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes) AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes)
AM_CONDITIONAL(LIBGO_IS_SOLARIS, test $is_solaris = yes)
AC_SUBST(GOOS) AC_SUBST(GOOS)
dnl N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
is_386=no is_386=no
is_x86_64=no
is_arm=no is_arm=no
is_sparc=no
is_sparcv9=no
is_x86_64=no
GOARCH=unknown GOARCH=unknown
case ${host} in case ${host} in
changequote(,)dnl changequote(,)dnl
@ -143,8 +149,10 @@ changequote([,])dnl
#endif], #endif],
[is_386=yes], [is_x86_64=yes]) [is_386=yes], [is_x86_64=yes])
if test "$is_386" = "yes"; then if test "$is_386" = "yes"; then
is_386=yes
GOARCH=386 GOARCH=386
else else
is_x86_64=yes
GOARCH=amd64 GOARCH=amd64
fi fi
;; ;;
@ -152,22 +160,38 @@ changequote([,])dnl
is_arm=yes is_arm=yes
GOARCH=arm GOARCH=arm
;; ;;
sparc*-*-*)
AC_PREPROC_IFELSE([
#if defined(__sparcv9) || defined(__arch64__)
#error 64-bit
#endif],
[is_sparc=yes], [is_sparcv9=yes])
if test "$is_sparc" = "yes"; then
is_sparc=yes
GOARCH=sparc
else
is_sparcv9=yes
GOARCH=sparcv9
fi
;;
esac esac
AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes) AM_CONDITIONAL(LIBGO_IS_386, test $is_386 = yes)
AM_CONDITIONAL(LIBGO_IS_X86_64, test $is_x86_64 = yes)
AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes) AM_CONDITIONAL(LIBGO_IS_ARM, test $is_arm = yes)
AM_CONDITIONAL(LIBGO_IS_SPARC, test $is_sparc = yes)
AM_CONDITIONAL(LIBGO_IS_SPARCV9, test $isv_sparcv9 = yes)
AM_CONDITIONAL(LIBGO_IS_X86_64, test $is_x86_64 = yes)
AC_SUBST(GOARCH) AC_SUBST(GOARCH)
dnl Use -fsplit-stack when compiling C code if available. dnl Use -fsplit-stack when compiling C code if available.
AC_CACHE_CHECK([whether -fsplit-stack is supported], AC_CACHE_CHECK([whether -fsplit-stack is supported],
[ac_cv_libgo_split_stack_supported], [libgo_cv_c_split_stack_supported],
[CFLAGS_hold=$CFLAGS [CFLAGS_hold=$CFLAGS
CFLAGS="$CFLAGS -fsplit-stack" CFLAGS="$CFLAGS -fsplit-stack"
AC_COMPILE_IFELSE([[int i;]], AC_COMPILE_IFELSE([[int i;]],
[ac_cv_libgo_split_stack_supported=yes], [libgo_cv_c_split_stack_supported=yes],
[ac_cv_libgo_split_stack_supported=no]) [libgo_cv_c_split_stack_supported=no])
CFLAGS=$CFLAGS_hold]) CFLAGS=$CFLAGS_hold])
if test "$ac_cv_libgo_split_stack_supported" = yes; then if test "$libgo_cv_c_split_stack_supported" = yes; then
SPLIT_STACK=-fsplit-stack SPLIT_STACK=-fsplit-stack
AC_DEFINE(USING_SPLIT_STACK, 1, AC_DEFINE(USING_SPLIT_STACK, 1,
[Define if the compiler supports -fsplit-stack]) [Define if the compiler supports -fsplit-stack])
@ -176,7 +200,7 @@ else
fi fi
AC_SUBST(SPLIT_STACK) AC_SUBST(SPLIT_STACK)
AM_CONDITIONAL(USING_SPLIT_STACK, AM_CONDITIONAL(USING_SPLIT_STACK,
test "$ac_cv_libgo_split_stack_supported" = yes) test "$libgo_cv_c_split_stack_supported" = yes)
dnl Check whether the linker does stack munging when calling from dnl Check whether the linker does stack munging when calling from
dnl split-stack into non-split-stack code. We check this by looking dnl split-stack into non-split-stack code. We check this by looking
@ -184,12 +208,12 @@ dnl at the --help output. FIXME: This is only half right: it's
dnl possible for the linker to support this for some targets but not dnl possible for the linker to support this for some targets but not
dnl others. dnl others.
AC_CACHE_CHECK([whether linker supports split stack], AC_CACHE_CHECK([whether linker supports split stack],
[ac_cv_libgo_linker_supports_split_stack], [libgo_cv_c_linker_supports_split_stack],
ac_cv_libgo_linker_supports_split_stack=no libgo_cv_c_linker_supports_split_stack=no
if $LD --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then if $LD --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
ac_cv_libgo_linker_supports_split_stack=yes libgo_cv_c_linker_supports_split_stack=yes
fi) fi)
if test "$ac_cv_libgo_linker_supports_split_stack" = yes; then if test "$libgo_cv_c_linker_supports_split_stack" = yes; then
AC_DEFINE(LINKER_SUPPORTS_SPLIT_STACK, 1, AC_DEFINE(LINKER_SUPPORTS_SPLIT_STACK, 1,
[Define if the linker support split stack adjustments]) [Define if the linker support split stack adjustments])
fi fi
@ -199,17 +223,48 @@ MATH_LIBS=
AC_CHECK_LIB([m], [sqrt], MATH_LIBS=-lm) AC_CHECK_LIB([m], [sqrt], MATH_LIBS=-lm)
AC_SUBST(MATH_LIBS) AC_SUBST(MATH_LIBS)
dnl Test for -lsocket and -lnsl. Copied from libjava/configure.ac.
AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
[libgo_cv_lib_sockets=
libgo_check_both=no
AC_CHECK_FUNC(connect, libgo_check_socket=no, libgo_check_socket=yes)
if test "$libgo_check_socket" = "yes"; then
unset ac_cv_func_connect
AC_CHECK_LIB(socket, main, libgo_cv_lib_sockets="-lsocket",
libgo_check_both=yes)
fi
if test "$libgo_check_both" = "yes"; then
libgo_old_libs=$LIBS
LIBS="$LIBS -lsocket -lnsl"
unset ac_cv_func_accept
AC_CHECK_FUNC(accept,
[libgo_check_nsl=no
libgo_cv_lib_sockets="-lsocket -lnsl"])
unset ac_cv_func_accept
LIBS=$libgo_old_libs
fi
unset ac_cv_func_gethostbyname
libgo_old_libs="$LIBS"
AC_CHECK_FUNC(gethostbyname, ,
[AC_CHECK_LIB(nsl, main,
[libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"])])
unset ac_cv_func_gethostbyname
LIBS=$libgo_old_libs
])
NET_LIBS="$libgo_cv_lib_sockets"
AC_SUBST(NET_LIBS)
dnl Test whether the compiler supports the -pthread option. dnl Test whether the compiler supports the -pthread option.
AC_CACHE_CHECK([whether -pthread is supported], AC_CACHE_CHECK([whether -pthread is supported],
[ac_cv_libgo_pthread_supported], [libgo_cv_lib_pthread],
[CFLAGS_hold=$CFLAGS [CFLAGS_hold=$CFLAGS
CFLAGS="$CFLAGS -pthread" CFLAGS="$CFLAGS -pthread"
AC_COMPILE_IFELSE([[int i;]], AC_COMPILE_IFELSE([[int i;]],
[ac_cv_libgo_pthread_supported=yes], [libgo_cv_lib_pthread=yes],
[ac_cv_libgo_pthread_supported=no]) [libgo_cv_lib_pthread=no])
CFLAGS=$CFLAGS_hold]) CFLAGS=$CFLAGS_hold])
PTHREAD_CFLAGS= PTHREAD_CFLAGS=
if test "$ac_cv_libgo_pthread_supported" = yes; then if test "$libgo_cv_lib_pthread" = yes; then
PTHREAD_CFLAGS=-pthread PTHREAD_CFLAGS=-pthread
fi fi
AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CFLAGS)
@ -230,15 +285,15 @@ AC_CHECK_FUNCS(srandom random strsignal)
dnl For x86 we want to use the -minline-all-stringops option to avoid dnl For x86 we want to use the -minline-all-stringops option to avoid
dnl forcing a stack split when calling memcpy and friends. dnl forcing a stack split when calling memcpy and friends.
AC_CACHE_CHECK([whether compiler supports -minline-all-stringops], AC_CACHE_CHECK([whether compiler supports -minline-all-stringops],
[ac_cv_libgo_compiler_supports_inline_all_stringops], [libgo_cv_c_stringops],
[CFLAGS_hold=$CFLAGS [CFLAGS_hold=$CFLAGS
CFLAGS="$CFLAGS -minline-all-stringops" CFLAGS="$CFLAGS -minline-all-stringops"
AC_COMPILE_IFELSE([int i;], AC_COMPILE_IFELSE([int i;],
[ac_cv_libgo_compiler_supports_inline_all_stringops=yes], [libgo_cv_c_stringops=yes],
[ac_cv_libgo_compiler_supports_inline_all_stringops=no]) [libgo_cv_c_stringops=no])
CFLAGS=$CFLAGS_hold]) CFLAGS=$CFLAGS_hold])
STRINGOPS_FLAG= STRINGOPS_FLAG=
if test "$ac_cv_libgo_compiler_supports_inline_all_stringops" = yes; then if test "$libgo_cv_c_stringops" = yes; then
STRINGOPS_FLAG=-minline-all-stringops STRINGOPS_FLAG=-minline-all-stringops
fi fi
AC_SUBST(STRINGOPS_FLAG) AC_SUBST(STRINGOPS_FLAG)

View File

@ -0,0 +1,17 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proc
import "os"
// Process tracing is not supported on Solaris yet.
func Attach(pid int) (Process, os.Error) {
return nil, os.NewError("debug/proc not implemented on Solaris")
}
func ForkExec(argv0 string, argv []string, envv []string, dir string, fd []*os.File) (Process, os.Error) {
return Attach(0)
}

View File

@ -0,0 +1,5 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proc

View File

@ -0,0 +1,5 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proc

View File

@ -0,0 +1,5 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proc

View File

@ -0,0 +1,5 @@
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package proc

View File

@ -0,0 +1,7 @@
// syscall_solaris.go -- Solaris 2 specific syscall interface.
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall

View File

@ -0,0 +1,19 @@
// syscall_solaris_386.go -- Solaris/x86 specific support
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall
import "unsafe"
const ARCH = "386"
// FIXME: ptrace(3C) has this, but exec.go expects the next.
//func libc_ptrace(request int, pid Pid_t, addr int, data int) int __asm__ ("ptrace")
func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int __asm__ ("ptrace")
var dummy *byte
const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy))

View File

@ -0,0 +1,23 @@
// syscall_solaris_amd64.go -- Solaris/x64 specific support
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall
import "unsafe"
const ARCH = "amd64"
// FIXME: ptrace(3C) has this, but exec.go expects the next.
//func libc_ptrace(request int, pid Pid_t, addr int, data int) int __asm__ ("ptrace")
// 64-bit ptrace(3C) doesn't exist
func libc_ptrace(request int, pid Pid_t, addr uintptr, data *byte) int {
errno := ENOSYS
return -1
}
var dummy *byte
const sizeofPtr uintptr = uintptr(unsafe.Sizeof(dummy))

View File

@ -0,0 +1,7 @@
// syscall_solaris_sparc.go -- Solaris SPARC specific support
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall

View File

@ -0,0 +1,7 @@
// syscall_solaris_v9.go -- Solaris sparc9v specific support
// Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package syscall

View File

@ -105,6 +105,7 @@ MAINT = @MAINT@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MATH_LIBS = @MATH_LIBS@ MATH_LIBS = @MATH_LIBS@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
NET_LIBS = @NET_LIBS@
NM = @NM@ NM = @NM@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
OBJCOPY = @OBJCOPY@ OBJCOPY = @OBJCOPY@