diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index cc713791691d..0b110e02d632 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -0036bd04d077f8bbe5aa9a62fb8830c53068209e +c49ddc84f3ce89310585aad23ab6e51ef5523748 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/Makefile.am b/libgo/Makefile.am index b94ac0c526cf..9800d20bd9b7 100644 --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -398,12 +398,6 @@ else rtems_task_variable_add_file = endif -if LIBGO_IS_LINUX -runtime_thread_files = runtime/thread-linux.c -else -runtime_thread_files = runtime/thread-sema.c -endif - if LIBGO_IS_LINUX runtime_getncpu_file = runtime/getncpu-linux.c else @@ -469,7 +463,6 @@ runtime_files = \ runtime/runtime_c.c \ runtime/stack.c \ runtime/thread.c \ - $(runtime_thread_files) \ runtime/yield.c \ $(rtems_task_variable_add_file) \ $(runtime_getncpu_file) diff --git a/libgo/Makefile.in b/libgo/Makefile.in index ba0a923c40ed..9a2bd47ff7b5 100644 --- a/libgo/Makefile.in +++ b/libgo/Makefile.in @@ -183,19 +183,17 @@ am__DEPENDENCIES_4 = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) \ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_3) libgo_llgo_la_DEPENDENCIES = $(am__DEPENDENCIES_4) -@LIBGO_IS_LINUX_FALSE@am__objects_1 = thread-sema.lo -@LIBGO_IS_LINUX_TRUE@am__objects_1 = thread-linux.lo -@LIBGO_IS_RTEMS_TRUE@am__objects_2 = rtems-task-variable-add.lo -@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@am__objects_3 = getncpu-none.lo -@LIBGO_IS_AIX_TRUE@@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_3 = getncpu-aix.lo -@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_3 = getncpu-bsd.lo -@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_3 = getncpu-bsd.lo -@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_3 = getncpu-solaris.lo -@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_3 = getncpu-irix.lo -@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_3 = \ +@LIBGO_IS_RTEMS_TRUE@am__objects_1 = rtems-task-variable-add.lo +@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@am__objects_2 = getncpu-none.lo +@LIBGO_IS_AIX_TRUE@@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_2 = getncpu-aix.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@am__objects_2 = getncpu-bsd.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_TRUE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_FALSE@am__objects_2 = getncpu-bsd.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_SOLARIS_TRUE@am__objects_2 = getncpu-solaris.lo +@LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_IRIX_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_2 = getncpu-irix.lo +@LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@am__objects_2 = \ @LIBGO_IS_DARWIN_TRUE@@LIBGO_IS_LINUX_FALSE@ getncpu-bsd.lo -@LIBGO_IS_LINUX_TRUE@am__objects_3 = getncpu-linux.lo -am__objects_4 = aeshash.lo go-assert.lo go-caller.lo go-callers.lo \ +@LIBGO_IS_LINUX_TRUE@am__objects_2 = getncpu-linux.lo +am__objects_3 = aeshash.lo go-assert.lo go-caller.lo go-callers.lo \ go-cdiv.lo go-cgo.lo go-construct-map.lo go-ffi.lo \ go-fieldtrack.lo go-matherr.lo go-memclr.lo go-memcmp.lo \ go-memequal.lo go-memmove.lo go-nanotime.lo go-now.lo \ @@ -203,16 +201,15 @@ am__objects_4 = aeshash.lo go-assert.lo go-caller.lo go-callers.lo \ go-setenv.lo go-signal.lo go-strslice.lo go-typedesc-equal.lo \ go-unsafe-pointer.lo go-unsetenv.lo go-unwind.lo go-varargs.lo \ env_posix.lo panic.lo print.lo proc.lo runtime_c.lo stack.lo \ - thread.lo $(am__objects_1) yield.lo $(am__objects_2) \ - $(am__objects_3) -am_libgo_llgo_la_OBJECTS = $(am__objects_4) + thread.lo yield.lo $(am__objects_1) $(am__objects_2) +am_libgo_llgo_la_OBJECTS = $(am__objects_3) libgo_llgo_la_OBJECTS = $(am_libgo_llgo_la_OBJECTS) libgo_llgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgo_llgo_la_LDFLAGS) $(LDFLAGS) -o $@ @GOC_IS_LLGO_TRUE@am_libgo_llgo_la_rpath = -rpath $(toolexeclibdir) libgo_la_DEPENDENCIES = $(am__DEPENDENCIES_4) -am_libgo_la_OBJECTS = $(am__objects_4) +am_libgo_la_OBJECTS = $(am__objects_3) libgo_la_OBJECTS = $(am_libgo_la_OBJECTS) libgo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgo_la_LDFLAGS) \ @@ -765,8 +762,6 @@ toolexeclibgounicode_DATA = \ @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_LINUX_FALSE@runtime_thread_files = runtime/thread-sema.c -@LIBGO_IS_LINUX_TRUE@runtime_thread_files = runtime/thread-linux.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_TRUE@@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-aix.c @LIBGO_IS_DARWIN_FALSE@@LIBGO_IS_FREEBSD_FALSE@@LIBGO_IS_IRIX_FALSE@@LIBGO_IS_LINUX_FALSE@@LIBGO_IS_NETBSD_TRUE@@LIBGO_IS_SOLARIS_FALSE@runtime_getncpu_file = runtime/getncpu-bsd.c @@ -810,7 +805,6 @@ runtime_files = \ runtime/runtime_c.c \ runtime/stack.c \ runtime/thread.c \ - $(runtime_thread_files) \ runtime/yield.c \ $(rtems_task_variable_add_file) \ $(runtime_getncpu_file) @@ -1525,8 +1519,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtems-task-variable-add.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/runtime_c.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread-linux.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread-sema.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thread.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yield.Plo@am__quote@ @@ -1831,20 +1823,6 @@ thread.lo: runtime/thread.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o thread.lo `test -f 'runtime/thread.c' || echo '$(srcdir)/'`runtime/thread.c -thread-sema.lo: runtime/thread-sema.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT thread-sema.lo -MD -MP -MF $(DEPDIR)/thread-sema.Tpo -c -o thread-sema.lo `test -f 'runtime/thread-sema.c' || echo '$(srcdir)/'`runtime/thread-sema.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/thread-sema.Tpo $(DEPDIR)/thread-sema.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/thread-sema.c' object='thread-sema.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o thread-sema.lo `test -f 'runtime/thread-sema.c' || echo '$(srcdir)/'`runtime/thread-sema.c - -thread-linux.lo: runtime/thread-linux.c -@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT thread-linux.lo -MD -MP -MF $(DEPDIR)/thread-linux.Tpo -c -o thread-linux.lo `test -f 'runtime/thread-linux.c' || echo '$(srcdir)/'`runtime/thread-linux.c -@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/thread-linux.Tpo $(DEPDIR)/thread-linux.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='runtime/thread-linux.c' object='thread-linux.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o thread-linux.lo `test -f 'runtime/thread-linux.c' || echo '$(srcdir)/'`runtime/thread-linux.c - yield.lo: runtime/yield.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT yield.lo -MD -MP -MF $(DEPDIR)/yield.Tpo -c -o yield.lo `test -f 'runtime/yield.c' || echo '$(srcdir)/'`runtime/yield.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/yield.Tpo $(DEPDIR)/yield.Plo diff --git a/libgo/go/runtime/stubs.go b/libgo/go/runtime/stubs.go index a3d091811d5d..30d87c4121b1 100644 --- a/libgo/go/runtime/stubs.go +++ b/libgo/go/runtime/stubs.go @@ -422,13 +422,13 @@ func getPanicking() uint32 { return panicking } -// Temporary for gccgo until we initialize ncpu in Go. +// Called by C code to set the number of CPUs. //go:linkname setncpu runtime.setncpu func setncpu(n int32) { ncpu = n } -// Temporary for gccgo until we reliably initialize physPageSize in Go. +// Called by C code to set the page size. //go:linkname setpagesize runtime.setpagesize func setpagesize(s uintptr) { if physPageSize == 0 { diff --git a/libgo/runtime/go-libmain.c b/libgo/runtime/go-libmain.c index 06f6bd32f352..5e3b8d9e48ad 100644 --- a/libgo/runtime/go-libmain.c +++ b/libgo/runtime/go-libmain.c @@ -105,7 +105,8 @@ gostart (void *arg) runtime_check (); runtime_args (a->argc, (byte **) a->argv); - runtime_osinit (); + setncpu (getproccount ()); + setpagesize (getpagesize ()); runtime_sched = runtime_getsched(); runtime_schedinit (); __go_go (runtime_main, NULL); diff --git a/libgo/runtime/go-main.c b/libgo/runtime/go-main.c index 26354ce69b0f..1048161786c5 100644 --- a/libgo/runtime/go-main.c +++ b/libgo/runtime/go-main.c @@ -51,7 +51,8 @@ main (int argc, char **argv) runtime_cpuinit (); runtime_check (); runtime_args (argc, (byte **) argv); - runtime_osinit (); + setncpu (getproccount ()); + setpagesize (getpagesize ()); runtime_sched = runtime_getsched(); runtime_schedinit (); __go_go (runtime_main, NULL); diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c index 1272669a8bd0..3e3437e6a479 100644 --- a/libgo/runtime/proc.c +++ b/libgo/runtime/proc.c @@ -370,7 +370,6 @@ extern G* allocg(void) __asm__ (GOSYM_PREFIX "runtime.allocg"); Sched* runtime_sched; -int32 runtime_ncpu; bool runtime_isarchive; diff --git a/libgo/runtime/runtime.h b/libgo/runtime/runtime.h index 9f84f523f5ee..3324038a57dc 100644 --- a/libgo/runtime/runtime.h +++ b/libgo/runtime/runtime.h @@ -217,7 +217,6 @@ extern M* runtime_getallm(void) extern Sched* runtime_sched; extern uint32 runtime_panicking(void) __asm__ (GOSYM_PREFIX "runtime.getPanicking"); -extern int32 runtime_ncpu; extern struct debugVars runtime_debug; extern bool runtime_isstarted; @@ -237,7 +236,6 @@ void runtime_gogo(G*) struct __go_func_type; void runtime_args(int32, byte**) __asm__ (GOSYM_PREFIX "runtime.args"); -void runtime_osinit(); void runtime_alginit(void) __asm__ (GOSYM_PREFIX "runtime.alginit"); void runtime_goargs(void) diff --git a/libgo/runtime/thread-linux.c b/libgo/runtime/thread-linux.c deleted file mode 100644 index f6d8be90caa4..000000000000 --- a/libgo/runtime/thread-linux.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2009 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. - -#include "runtime.h" -#include "defs.h" - -// Linux futex. - -#include -#include -#include - -void -runtime_osinit(void) -{ - runtime_ncpu = getproccount(); - setncpu(runtime_ncpu); - setpagesize(getpagesize()); -} diff --git a/libgo/runtime/thread-sema.c b/libgo/runtime/thread-sema.c deleted file mode 100644 index 77d53c416843..000000000000 --- a/libgo/runtime/thread-sema.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2009 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. - -#include "config.h" -#include "runtime.h" - -#include -#include -#include -#include -#include - -void -runtime_osinit (void) -{ - runtime_ncpu = getproccount(); - setncpu(runtime_ncpu); - setpagesize(getpagesize()); -}