mirror of
https://github.com/gcc-mirror/gcc.git
synced 2024-11-21 13:40:47 +00:00
runtime: call timer functions via syscall
It turns out to be painful to require linking against -lrt on GNU/Linux, as that makes it harder to link Go code into C programs. Instead just call the timer syscalls directly. That is what the upstream library does anyhow. gcc/go/ * gospec.cc: Revert 2022-02-09 change: (RTLIB, RT_LIBRARY): Don't define. (lang_specific_driver): Don't add -lrt if linking statically on GNU/Linux. gotools/ * configure.ac: Revert 2022-02-09 change: (RT_LIBS): Don't define. * Makefile.am (check-runtime): Don't set GOLIBS to $(RT_LIBS). * configure, Makefile.in: Regenerate. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/385475
This commit is contained in:
parent
033ec967ec
commit
58aeb75d40
@ -1,4 +1,4 @@
|
|||||||
7f8fee099d6de4a5a857765e0ddfae356ead554c
|
0af68c0552341a44f1fb12301f9eff954b9dde88
|
||||||
|
|
||||||
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.
|
||||||
|
@ -29,12 +29,10 @@ along with GCC; see the file COPYING3. If not see
|
|||||||
#define MATHLIB (1<<2)
|
#define MATHLIB (1<<2)
|
||||||
/* This bit is set if they did `-lpthread'. */
|
/* This bit is set if they did `-lpthread'. */
|
||||||
#define THREADLIB (1<<3)
|
#define THREADLIB (1<<3)
|
||||||
/* This bit is set if they did `-lrt'. */
|
|
||||||
#define RTLIB (1<<4)
|
|
||||||
/* This bit is set if they did `-lc'. */
|
/* This bit is set if they did `-lc'. */
|
||||||
#define WITHLIBC (1<<5)
|
#define WITHLIBC (1<<4)
|
||||||
/* Skip this option. */
|
/* Skip this option. */
|
||||||
#define SKIPOPT (1<<6)
|
#define SKIPOPT (1<<5)
|
||||||
|
|
||||||
#ifndef MATH_LIBRARY
|
#ifndef MATH_LIBRARY
|
||||||
#define MATH_LIBRARY "m"
|
#define MATH_LIBRARY "m"
|
||||||
@ -46,8 +44,6 @@ along with GCC; see the file COPYING3. If not see
|
|||||||
#define THREAD_LIBRARY "pthread"
|
#define THREAD_LIBRARY "pthread"
|
||||||
#define THREAD_LIBRARY_PROFILE THREAD_LIBRARY
|
#define THREAD_LIBRARY_PROFILE THREAD_LIBRARY
|
||||||
|
|
||||||
#define RT_LIBRARY "rt"
|
|
||||||
|
|
||||||
#define LIBGO "go"
|
#define LIBGO "go"
|
||||||
#define LIBGO_PROFILE LIBGO
|
#define LIBGO_PROFILE LIBGO
|
||||||
#define LIBGOBEGIN "gobegin"
|
#define LIBGOBEGIN "gobegin"
|
||||||
@ -78,9 +74,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
/* "-lpthread" if it appears on the command line. */
|
/* "-lpthread" if it appears on the command line. */
|
||||||
const struct cl_decoded_option *saw_thread = 0;
|
const struct cl_decoded_option *saw_thread = 0;
|
||||||
|
|
||||||
/* "-lrt" if it appears on the command line. */
|
|
||||||
const struct cl_decoded_option *saw_rt = 0;
|
|
||||||
|
|
||||||
/* "-lc" if it appears on the command line. */
|
/* "-lc" if it appears on the command line. */
|
||||||
const struct cl_decoded_option *saw_libc = 0;
|
const struct cl_decoded_option *saw_libc = 0;
|
||||||
|
|
||||||
@ -91,9 +84,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
/* Whether we need the thread library. */
|
/* Whether we need the thread library. */
|
||||||
int need_thread = 0;
|
int need_thread = 0;
|
||||||
|
|
||||||
/* Whether we need the rt library. */
|
|
||||||
int need_rt = 0;
|
|
||||||
|
|
||||||
/* By default, we throw on the math library if we have one. */
|
/* By default, we throw on the math library if we have one. */
|
||||||
int need_math = (MATH_LIBRARY[0] != '\0');
|
int need_math = (MATH_LIBRARY[0] != '\0');
|
||||||
|
|
||||||
@ -166,8 +156,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
}
|
}
|
||||||
else if (strcmp (arg, THREAD_LIBRARY) == 0)
|
else if (strcmp (arg, THREAD_LIBRARY) == 0)
|
||||||
args[i] |= THREADLIB;
|
args[i] |= THREADLIB;
|
||||||
else if (strcmp (arg, RT_LIBRARY) == 0)
|
|
||||||
args[i] |= RTLIB;
|
|
||||||
else if (strcmp (arg, "c") == 0)
|
else if (strcmp (arg, "c") == 0)
|
||||||
args[i] |= WITHLIBC;
|
args[i] |= WITHLIBC;
|
||||||
else
|
else
|
||||||
@ -272,7 +260,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Make sure to have room for the trailing NULL argument. */
|
/* Make sure to have room for the trailing NULL argument. */
|
||||||
num_args = argc + need_math + shared_libgcc + (library > 0) * 6 + 10;
|
num_args = argc + need_math + shared_libgcc + (library > 0) * 5 + 10;
|
||||||
new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);
|
new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
@ -326,12 +314,6 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
saw_thread = &decoded_options[i];
|
saw_thread = &decoded_options[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!saw_rt && (args[i] & RTLIB) && library > 0)
|
|
||||||
{
|
|
||||||
--j;
|
|
||||||
saw_rt = &decoded_options[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!saw_libc && (args[i] & WITHLIBC) && library > 0)
|
if (!saw_libc && (args[i] & WITHLIBC) && library > 0)
|
||||||
{
|
{
|
||||||
--j;
|
--j;
|
||||||
@ -413,23 +395,9 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* When linking libgo statically we also need to link with the
|
/* When linking libgo statically we also need to link with the
|
||||||
pthread and (on GNU/Linux) the rt library. */
|
pthread library. */
|
||||||
if (library > 1 || static_link)
|
if (library > 1 || static_link)
|
||||||
{
|
need_thread = 1;
|
||||||
need_thread = 1;
|
|
||||||
if (strstr (DEFAULT_TARGET_MACHINE, "linux") != NULL)
|
|
||||||
need_rt = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (saw_rt)
|
|
||||||
new_decoded_options[j++] = *saw_rt;
|
|
||||||
else if (library > 0 && need_rt)
|
|
||||||
{
|
|
||||||
generate_option (OPT_l, RT_LIBRARY, 1, CL_DRIVER,
|
|
||||||
&new_decoded_options[j]);
|
|
||||||
added_libraries++;
|
|
||||||
j++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (saw_thread)
|
if (saw_thread)
|
||||||
|
@ -248,14 +248,12 @@ check-runtime: go$(EXEEXT) $(noinst_PROGRAMS) check-head check-gccgo check-gcc
|
|||||||
GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
||||||
GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
||||||
files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
||||||
echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} GOLIBS='$(RT_LIBS)' $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
|
echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
|
||||||
$(CHECK_ENV) \
|
$(CHECK_ENV) \
|
||||||
GC="$${GCCGO} -fgo-compiling-runtime"; \
|
GC="$${GCCGO} -fgo-compiling-runtime"; \
|
||||||
export GC; \
|
export GC; \
|
||||||
GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
||||||
GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
||||||
GOLIBS="$(RT_LIBS)"; \
|
|
||||||
export GOLIBS; \
|
|
||||||
files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
||||||
$(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
|
$(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
|
||||||
grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
|
grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
|
||||||
|
@ -269,7 +269,6 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|||||||
PACKAGE_URL = @PACKAGE_URL@
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
RT_LIBS = @RT_LIBS@
|
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
@ -920,14 +919,12 @@ mostlyclean-local:
|
|||||||
@NATIVE_TRUE@ GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
@NATIVE_TRUE@ GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
||||||
@NATIVE_TRUE@ GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
@NATIVE_TRUE@ GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
||||||
@NATIVE_TRUE@ files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
@NATIVE_TRUE@ files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
||||||
@NATIVE_TRUE@ echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} GOLIBS='$(RT_LIBS)' $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
|
@NATIVE_TRUE@ echo "$(ECHO_ENV) GC='$(abs_builddir)/check-gccgo -fgo-compiling-runtime' GOARCH=$${GOARCH} GOOS=$${GOOS} $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles='$${files}' $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v" > runtime-testlog
|
||||||
@NATIVE_TRUE@ $(CHECK_ENV) \
|
@NATIVE_TRUE@ $(CHECK_ENV) \
|
||||||
@NATIVE_TRUE@ GC="$${GCCGO} -fgo-compiling-runtime"; \
|
@NATIVE_TRUE@ GC="$${GCCGO} -fgo-compiling-runtime"; \
|
||||||
@NATIVE_TRUE@ export GC; \
|
@NATIVE_TRUE@ export GC; \
|
||||||
@NATIVE_TRUE@ GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
@NATIVE_TRUE@ GOARCH=`$(abs_builddir)/go$(EXEEXT) env GOARCH`; \
|
||||||
@NATIVE_TRUE@ GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
@NATIVE_TRUE@ GOOS=`$(abs_builddir)/go$(EXEEXT) env GOOS`; \
|
||||||
@NATIVE_TRUE@ GOLIBS="$(RT_LIBS)"; \
|
|
||||||
@NATIVE_TRUE@ export GOLIBS; \
|
|
||||||
@NATIVE_TRUE@ files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
@NATIVE_TRUE@ files=`$(SHELL) $(libgosrcdir)/../match.sh --goarch=$${GOARCH} --goos=$${GOOS} --srcdir=$(libgosrcdir)/runtime --extrafiles="$(libgodir)/runtime_linknames.go $(libgodir)/runtime_sysinfo.go $(libgodir)/sigtab.go $(libgodir)/goroot.go" --tag=libffi`; \
|
||||||
@NATIVE_TRUE@ $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
|
@NATIVE_TRUE@ $(SHELL) $(libgosrcdir)/../testsuite/gotest --goarch=$${GOARCH} --goos=$${GOOS} --basedir=$(libgosrcdir)/.. --srcdir=$(libgosrcdir)/runtime --pkgpath=runtime --pkgfiles="$${files}" $(GOTESTFLAGS) -test.timeout=$(GOTOOLS_TEST_TIMEOUT)s -test.v >> runtime-testlog 2>&1 || echo "--- $${fl}: go test runtime (0.00s)" >> runtime-testlog
|
||||||
@NATIVE_TRUE@ grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
|
@NATIVE_TRUE@ grep '^--- ' runtime-testlog | sed -e 's/^--- \(.*\) ([^)]*)$$/\1/' | sort -k 2
|
||||||
|
7
gotools/configure
vendored
7
gotools/configure
vendored
@ -586,7 +586,6 @@ ac_subst_vars='am__EXEEXT_FALSE
|
|||||||
am__EXEEXT_TRUE
|
am__EXEEXT_TRUE
|
||||||
LTLIBOBJS
|
LTLIBOBJS
|
||||||
LIBOBJS
|
LIBOBJS
|
||||||
RT_LIBS
|
|
||||||
NET_LIBS
|
NET_LIBS
|
||||||
NATIVE_FALSE
|
NATIVE_FALSE
|
||||||
NATIVE_TRUE
|
NATIVE_TRUE
|
||||||
@ -4212,12 +4211,6 @@ if test "$ac_res" != no; then :
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
RT_LIBS=
|
|
||||||
case ${target} in
|
|
||||||
*-*-linux*) RT_LIBS=-lrt ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
ac_config_files="$ac_config_files Makefile"
|
ac_config_files="$ac_config_files Makefile"
|
||||||
|
|
||||||
|
|
||||||
|
@ -85,15 +85,6 @@ dnl Test if -lrt is required for sched_yield and/or nanosleep.
|
|||||||
AC_SEARCH_LIBS([sched_yield], [rt])
|
AC_SEARCH_LIBS([sched_yield], [rt])
|
||||||
AC_SEARCH_LIBS([nanosleep], [rt])
|
AC_SEARCH_LIBS([nanosleep], [rt])
|
||||||
|
|
||||||
dnl On GNU/Linux we need to link the runtime package against -lrt.
|
|
||||||
dnl This is a target test, unlike sched_yield/nanosleep above
|
|
||||||
dnl which is a host test.
|
|
||||||
RT_LIBS=
|
|
||||||
case ${target} in
|
|
||||||
*-*-linux*) RT_LIBS=-lrt ;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(RT_LIBS)
|
|
||||||
|
|
||||||
AC_CONFIG_FILES(Makefile)
|
AC_CONFIG_FILES(Makefile)
|
||||||
|
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
@ -832,8 +832,7 @@ libgo_ldflags = \
|
|||||||
|
|
||||||
libgo_libadd = \
|
libgo_libadd = \
|
||||||
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
|
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
|
||||||
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) \
|
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
|
||||||
$(NET_LIBS) $(RT_LIBS)
|
|
||||||
|
|
||||||
libgo_la_SOURCES = $(runtime_files)
|
libgo_la_SOURCES = $(runtime_files)
|
||||||
libgo_la_LDFLAGS = $(libgo_ldflags)
|
libgo_la_LDFLAGS = $(libgo_ldflags)
|
||||||
@ -924,7 +923,7 @@ GOBENCH =
|
|||||||
CHECK = \
|
CHECK = \
|
||||||
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
|
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
|
||||||
export GC; \
|
export GC; \
|
||||||
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(RT_LIBS) $(LIBS)"; \
|
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
|
||||||
export GOLIBS; \
|
export GOLIBS; \
|
||||||
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
|
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
|
||||||
export RUNTESTFLAGS; \
|
export RUNTESTFLAGS; \
|
||||||
|
@ -233,8 +233,7 @@ am__DEPENDENCIES_4 =
|
|||||||
am__DEPENDENCIES_5 = $(am__DEPENDENCIES_3) \
|
am__DEPENDENCIES_5 = $(am__DEPENDENCIES_3) \
|
||||||
../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_4) \
|
../libbacktrace/libbacktrace.la $(am__DEPENDENCIES_4) \
|
||||||
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) \
|
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) \
|
||||||
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4) \
|
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_4)
|
||||||
$(am__DEPENDENCIES_4)
|
|
||||||
libgo_llgo_la_DEPENDENCIES = $(am__DEPENDENCIES_5)
|
libgo_llgo_la_DEPENDENCIES = $(am__DEPENDENCIES_5)
|
||||||
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@am__objects_1 = \
|
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@am__objects_1 = \
|
||||||
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@ runtime/go-context.lo
|
@LIBGO_IS_LINUX_TRUE@@LIBGO_IS_X86_TRUE@ runtime/go-context.lo
|
||||||
@ -466,7 +465,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
|
|||||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||||
PTHREAD_LIBS = @PTHREAD_LIBS@
|
PTHREAD_LIBS = @PTHREAD_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
RT_LIBS = @RT_LIBS@
|
|
||||||
SED = @SED@
|
SED = @SED@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
@ -972,8 +970,7 @@ libgo_ldflags = \
|
|||||||
|
|
||||||
libgo_libadd = \
|
libgo_libadd = \
|
||||||
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
|
$(libgo_go_objs) ../libbacktrace/libbacktrace.la \
|
||||||
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) \
|
$(LIBATOMIC) $(LIBFFI) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS)
|
||||||
$(NET_LIBS) $(RT_LIBS)
|
|
||||||
|
|
||||||
libgo_la_SOURCES = $(runtime_files)
|
libgo_la_SOURCES = $(runtime_files)
|
||||||
libgo_la_LDFLAGS = $(libgo_ldflags)
|
libgo_la_LDFLAGS = $(libgo_ldflags)
|
||||||
@ -1047,7 +1044,7 @@ GOBENCH =
|
|||||||
CHECK = \
|
CHECK = \
|
||||||
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
|
GC="$(GOC) $(GOCFLAGS) $($(subst /,_,$@)_GOCFLAGS) -L `${PWD_COMMAND}` -L `${PWD_COMMAND}`/.libs"; \
|
||||||
export GC; \
|
export GC; \
|
||||||
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(RT_LIBS) $(LIBS)"; \
|
GOLIBS="$(extra_check_libs_$(subst .,_,$(subst /,_,$(@D)))) $(PTHREAD_LIBS) $(MATH_LIBS) $(NET_LIBS) $(LIBS)"; \
|
||||||
export GOLIBS; \
|
export GOLIBS; \
|
||||||
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
|
RUNTESTFLAGS="$(RUNTESTFLAGS)"; \
|
||||||
export RUNTESTFLAGS; \
|
export RUNTESTFLAGS; \
|
||||||
|
11
libgo/configure
vendored
11
libgo/configure
vendored
@ -649,7 +649,6 @@ HAVE_SYS_MMAN_H_FALSE
|
|||||||
HAVE_SYS_MMAN_H_TRUE
|
HAVE_SYS_MMAN_H_TRUE
|
||||||
PTHREAD_LIBS
|
PTHREAD_LIBS
|
||||||
PTHREAD_CFLAGS
|
PTHREAD_CFLAGS
|
||||||
RT_LIBS
|
|
||||||
NET_LIBS
|
NET_LIBS
|
||||||
MATH_LIBS
|
MATH_LIBS
|
||||||
GOC_IS_LLGO_FALSE
|
GOC_IS_LLGO_FALSE
|
||||||
@ -11545,7 +11544,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 11548 "configure"
|
#line 11547 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -11651,7 +11650,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 11654 "configure"
|
#line 11653 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
@ -14748,12 +14747,6 @@ $as_echo "$libgo_cv_lib_sockets" >&6; }
|
|||||||
NET_LIBS="$libgo_cv_lib_sockets"
|
NET_LIBS="$libgo_cv_lib_sockets"
|
||||||
|
|
||||||
|
|
||||||
RT_LIBS=
|
|
||||||
case ${host} in
|
|
||||||
*-*-linux*) RT_LIBS=-lrt ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
{ $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 ${libgo_cv_lib_pthread+:} false; then :
|
if ${libgo_cv_lib_pthread+:} false; then :
|
||||||
|
@ -549,12 +549,6 @@ AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
|
|||||||
NET_LIBS="$libgo_cv_lib_sockets"
|
NET_LIBS="$libgo_cv_lib_sockets"
|
||||||
AC_SUBST(NET_LIBS)
|
AC_SUBST(NET_LIBS)
|
||||||
|
|
||||||
RT_LIBS=
|
|
||||||
case ${host} in
|
|
||||||
*-*-linux*) RT_LIBS=-lrt ;;
|
|
||||||
esac
|
|
||||||
AC_SUBST(RT_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],
|
||||||
[libgo_cv_lib_pthread],
|
[libgo_cv_lib_pthread],
|
||||||
|
@ -18,7 +18,7 @@ type mOS struct {
|
|||||||
// creates and manages its own timer, and these fields are read and written
|
// creates and manages its own timer, and these fields are read and written
|
||||||
// only by this thread. But because some of the reads on profileTimerValid
|
// only by this thread. But because some of the reads on profileTimerValid
|
||||||
// are in signal handling code, access to that field uses atomic operations.
|
// are in signal handling code, access to that field uses atomic operations.
|
||||||
profileTimer uintptr
|
profileTimer int32
|
||||||
profileTimerValid uint32
|
profileTimerValid uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,16 +243,17 @@ func osinit() {
|
|||||||
physHugePageSize = getHugePageSize()
|
physHugePageSize = getHugePageSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
//go:noescape
|
func timer_create(clockid int32, sevp *_sigevent, timerid *int32) int32 {
|
||||||
//extern-sysinfo timer_create
|
return int32(syscall(_SYS_timer_create, uintptr(clockid), uintptr(unsafe.Pointer(sevp)), uintptr(unsafe.Pointer(timerid)), 0, 0, 0))
|
||||||
func timer_create(clockid int32, sevp *_sigevent, timerid *uintptr) int32
|
}
|
||||||
|
|
||||||
//go:noescape
|
func timer_settime(timerid int32, flags int32, new, old *_itimerspec) int32 {
|
||||||
//extern-sysinfo timer_settime
|
return int32(syscall(_SYS_timer_settime, uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), uintptr(unsafe.Pointer(old)), 0, 0))
|
||||||
func timer_settime(timerid uintptr, flags int32, new, old *_itimerspec) int32
|
}
|
||||||
|
|
||||||
//extern-sysinfo timer_delete
|
func timer_delete(timerid int32) int32 {
|
||||||
func timer_delete(timerid uintptr) int32
|
return int32(syscall(_SYS_timer_delete, uintptr(timerid), 0, 0, 0, 0, 0))
|
||||||
|
}
|
||||||
|
|
||||||
// go118UseTimerCreateProfiler enables the per-thread CPU profiler.
|
// go118UseTimerCreateProfiler enables the per-thread CPU profiler.
|
||||||
const go118UseTimerCreateProfiler = true
|
const go118UseTimerCreateProfiler = true
|
||||||
@ -360,7 +361,7 @@ func setThreadCPUProfiler(hz int32) {
|
|||||||
spec.it_value.setNsec(1 + int64(fastrandn(uint32(1e9/hz))))
|
spec.it_value.setNsec(1 + int64(fastrandn(uint32(1e9/hz))))
|
||||||
spec.it_interval.setNsec(1e9 / int64(hz))
|
spec.it_interval.setNsec(1e9 / int64(hz))
|
||||||
|
|
||||||
var timerid uintptr
|
var timerid int32
|
||||||
var sevp _sigevent
|
var sevp _sigevent
|
||||||
sevp.sigev_notify = _SIGEV_THREAD_ID
|
sevp.sigev_notify = _SIGEV_THREAD_ID
|
||||||
sevp.sigev_signo = _SIGPROF
|
sevp.sigev_signo = _SIGPROF
|
||||||
|
@ -215,7 +215,6 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
|
|||||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||||
PTHREAD_LIBS = @PTHREAD_LIBS@
|
PTHREAD_LIBS = @PTHREAD_LIBS@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
RT_LIBS = @RT_LIBS@
|
|
||||||
SED = @SED@
|
SED = @SED@
|
||||||
SET_MAKE = @SET_MAKE@
|
SET_MAKE = @SET_MAKE@
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
|
Loading…
Reference in New Issue
Block a user