Ian Lance Taylor
f8d9fa9e80
libgo, compiler: Upgrade libgo to Go 1.4, except for runtime.
...
This upgrades all of libgo other than the runtime package to
the Go 1.4 release. In Go 1.4 much of the runtime was
rewritten into Go. Merging that code will take more time and
will not change the API, so I'm putting it off for now.
There are a few runtime changes anyhow, to accomodate other
packages that rely on minor modifications to the runtime
support.
The compiler changes slightly to add a one-bit flag to each
type descriptor kind that is stored directly in an interface,
which for gccgo is currently only pointer types. Another
one-bit flag (gcprog) is reserved because it is used by the gc
compiler, but gccgo does not currently use it.
There is another error check in the compiler since I ran
across it during testing.
gotools/:
* Makefile.am (go_cmd_go_files): Sort entries. Add generate.go.
* Makefile.in: Rebuild.
From-SVN: r219627
2015-01-15 00:27:56 +00:00
Chris Manghane
f1d2ac4f84
compiler: Add precise type information on the heap.
...
* go-gcc.cc (Gcc_backend::implicit_variable): Remove init
parameter. Add is_hidden parameter.
(Gcc_backend::implicit_variable_set_init): New method.
(Gcc_backend::implicit_variable_reference): New method.
From-SVN: r214894
2014-09-03 22:56:09 +00:00
Ian Lance Taylor
dffa732835
reflect, runtime: Use libffi closures to implement reflect.MakeFunc.
...
Keep using the existing 386 and amd64 code on those archs,
since it is more efficient.
From-SVN: r212853
2014-07-19 21:36:26 +00:00
Ian Lance Taylor
00d86ac99f
libgo: Update to Go 1.3 release.
...
From-SVN: r212837
2014-07-19 08:53:52 +00:00
Ian Lance Taylor
2fa39ad859
runtime: Merge master revision 19185.
...
This revision renames several files in the runtime directory
from .c to .goc.
From-SVN: r212472
2014-07-12 00:01:09 +00:00
Ian Lance Taylor
6736ef96ea
libgo: Merge to master revision 19184.
...
The next revision, 19185, renames several runtime files, and
will be handled in a separate change.
From-SVN: r211328
2014-06-06 22:37:27 +00:00
Ian Lance Taylor
bae90c989c
libgo: Merge from revision 18783:00cce3a34d7e of master library.
...
This revision was committed January 7, 2014. The next
revision deleted runtime/mfinal.c. That will be done in a
subsequent merge.
This merge changes type descriptors to add a zero field,
pointing to a zero value for that type. This is implemented
as a common variable.
* go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and
alignment parameters. Permit init parameter to be NULL.
From-SVN: r211249
2014-06-04 23:15:33 +00:00
Ian Lance Taylor
93c521ea9c
runtime: fix misc gcc-isms and undefined behavior
...
This includes the use of __complex and __builtin_ functions where
unprefixed entities would suffice, and the use of a union for
bit-casting between types.
From-SVN: r211036
2014-05-28 23:10:47 +00:00
Ian Lance Taylor
e8d8443d22
runtime: Fix prototype and one use of runtime_traceback.
...
From Richard Biener.
From-SVN: r205634
2013-12-03 14:51:07 +00:00
Ian Lance Taylor
2583109c81
libgo: Avoid some cases of getting callers recursively.
...
Avoids hanging inside older versions of glibc that do not
support recurive calls to dl_iterate_phdr.
From-SVN: r205561
2013-12-01 01:40:16 +00:00
Ian Lance Taylor
f038dae646
libgo: Update to October 24 version of master library.
...
From-SVN: r204466
2013-11-06 19:49:01 +00:00
Ian Lance Taylor
05a7d56678
compiler, runtime: Use runtime functions to pass closure value.
...
This changes the compiler and runtime to not pass a closure
value as the last argument, but to instead pass it via
__go_set_closure and retrieve it via __go_get_closure. This
eliminates the need for function descriptor wrapper functions.
It will make it possible to retrieve the closure value in a
reflect.MakeFunc function.
From-SVN: r202233
2013-09-03 21:52:37 +00:00
Ian Lance Taylor
7acd2b86bf
runtime: Support cgo callbacks from threads started by C.
...
This adjusts the extram support to work with gccgo. There are
some corresponding changes to cgo in
https://codereview.appspot.com/11406047/ .
From-SVN: r201179
2013-07-23 20:26:09 +00:00
Ian Lance Taylor
be47d6ecef
libgo: Update to Go 1.1.1.
...
From-SVN: r200974
2013-07-16 06:54:42 +00:00
Ian Lance Taylor
fdbc38a6e8
compiler, runtime: Use function descriptors.
...
This changes the representation of a Go value of function type
from being a pointer to function code (like a C function
pointer) to being a pointer to a struct. The first field of
the struct points to the function code. The remaining fields,
if any, are the addresses of variables referenced in enclosing
functions. For each call to a function, the address of the
function descriptor is passed as the last argument.
This lets us avoid generating trampolines, and removes the use
of writable/executable sections of the heap.
From-SVN: r200181
2013-06-18 23:49:49 +00:00
Ian Lance Taylor
27741f93ef
runtime: In backtraces, get inline functions, skip split-stack fns.
...
From-SVN: r195591
2013-01-30 22:24:40 +00:00
Ian Lance Taylor
777133fefb
libgo: Update Go library to master revision 15502/229081515358.
...
From-SVN: r195569
2013-01-30 01:37:13 +00:00
Ian Lance Taylor
d6f2922e91
libgo: Update Go library to master revision 15489/921e53d4863c.
...
From-SVN: r195560
2013-01-29 20:52:43 +00:00
Ian Lance Taylor
f6b1e65ec3
re PR go/46986 (Go is not supported on Darwin)
...
PR go/46986
all: prepend #__USER_LABEL_PREFIX__ to mangled Go symbols
For old-fashioned Darwin.
From-SVN: r195438
2013-01-24 19:44:23 +00:00
Ian Lance Taylor
409a5e7eb4
libgo: Update to revision 15193:6fdc1974457c of master library.
...
From-SVN: r194692
2012-12-22 01:15:33 +00:00
Ian Lance Taylor
fabcaa8df3
libgo: Update to current version of master library.
...
From-SVN: r193688
2012-11-21 07:03:38 +00:00
Ian Lance Taylor
95d89457e2
runtime: Fix use of __atomic_compare_exchange_n: not weak, consistent.
...
From-SVN: r193581
2012-11-17 00:52:22 +00:00
Ian Lance Taylor
8273ed8077
compiler, runtime: Size of int is now 64 bits on x86_64.
...
From-SVN: r193255
2012-11-06 18:46:38 +00:00
Ian Lance Taylor
fb3f38da2a
compiler, libgo: Fixes to prepare for 64-bit int.
...
From-SVN: r193254
2012-11-06 18:28:21 +00:00
Ian Lance Taylor
776f27a67f
compiler, runtime: More steps toward separating int and intgo.
...
From-SVN: r193059
2012-11-01 03:02:13 +00:00
Ian Lance Taylor
4ccad563d2
libgo: Update to current sources.
...
From-SVN: r192704
2012-10-23 04:31:11 +00:00
Ian Lance Taylor
686750d25d
runtime: Use argv[0] to get executable name for backtrace.
...
From-SVN: r192123
2012-10-05 13:44:40 +00:00
Ian Lance Taylor
0e56e59065
libgo: Use libbacktrace rather than debug/elf registration.
...
From-SVN: r191831
2012-09-28 14:48:30 +00:00
Ian Lance Taylor
233115eaf5
runtime: support NumCPU() on more platforms Added support for Solaris, Irix, *BSD (including Darwin).
...
runtime: support NumCPU() on more platforms
Added support for Solaris, Irix, *BSD (including Darwin).
Still missing support for RTEMS.
Fixes issue 3698 in Go issue tracker.
From-SVN: r190197
2012-08-07 04:42:49 +00:00
Ian Lance Taylor
1fae9801e4
runtime, runtime/pprof: Fix runtime/pprof test to pass, enable it.
...
From-SVN: r189878
2012-07-26 01:57:04 +00:00
Ian Lance Taylor
7bea4023f2
runtime: Better SWIG interface for allocating Go memory from C/C++.
...
From-SVN: r188164
2012-06-04 05:34:59 +00:00
Ian Lance Taylor
d4dc840de4
runtime: More efficient implementation of trampolines.
...
From-SVN: r187899
2012-05-25 21:51:39 +00:00
Ian Lance Taylor
bac564c53e
runtime: Make runtime.Stack actually work.
...
From-SVN: r187854
2012-05-24 21:07:18 +00:00
Ian Lance Taylor
86ba147f54
runtime: Copy runtime_printf from other Go library.
...
From-SVN: r187848
2012-05-24 20:44:34 +00:00
Ian Lance Taylor
ef1f343258
runtime: Use getcontext, not setjmp, to save regs for GC.
...
From-SVN: r187777
2012-05-22 16:57:23 +00:00
Ian Lance Taylor
d7b8f2b781
runtime: Print stack trace on panic or signal.
...
From-SVN: r187623
2012-05-17 05:30:25 +00:00
Ian Lance Taylor
f3ab5720f7
libgo: Use -fgo-pkgpath.
...
From-SVN: r187485
2012-05-14 22:08:42 +00:00
Ian Lance Taylor
8a72417502
runtime: Ignore stack sizes when deciding when to GC.
...
Also allocate heap bitmaps bit in page size units and clear
context when putting G structures on free list.
From-SVN: r186607
2012-04-20 04:58:26 +00:00
Ian Lance Taylor
456fba2651
libgo: Update to weekly.2012-03-13.
...
From-SVN: r186023
2012-03-30 21:27:11 +00:00
Ian Lance Taylor
24aea58753
libgo: Export {enter,exit}syscall and use it for getaddrinfo.
...
From-SVN: r185363
2012-03-13 23:01:30 +00:00
Ian Lance Taylor
0effc3f961
libgo: Implement and use runtime.Caller, runtime.Func.FileLine.
...
From-SVN: r185025
2012-03-07 01:16:20 +00:00
Ian Lance Taylor
593f74bbab
libgo: Update to weekly.2012-03-04 release.
...
From-SVN: r185010
2012-03-06 17:57:23 +00:00
Ian Lance Taylor
501699af16
libgo: Update to weekly.2012-02-22 release.
...
From-SVN: r184819
2012-03-02 20:01:37 +00:00
Ian Lance Taylor
cbb6491d76
libgo: Update to weekly.2012-02-14 release.
...
From-SVN: r184798
2012-03-02 16:38:43 +00:00
Ian Lance Taylor
5c46e29317
runtime: Call exit rather than _exit.
...
This fixes --coverage and perhaps other things as well.
From-SVN: r184642
2012-02-28 20:57:15 +00:00
Ian Lance Taylor
94252f4bcc
libgo: Update to weekly.2012-02-07.
...
From-SVN: r184034
2012-02-09 08:19:58 +00:00
Ian Lance Taylor
df1304ee03
libgo: Update to weekly.2012-01-15.
...
From-SVN: r183539
2012-01-25 20:56:26 +00:00
Ian Lance Taylor
df4aa89a5e
libgo: Update to weekly.2011-12-22.
...
From-SVN: r183150
2012-01-13 05:11:45 +00:00
Ian Lance Taylor
9a0e3259f4
libgo: Update to weekly.2011-12-14.
...
From-SVN: r183118
2012-01-12 01:31:45 +00:00
Ian Lance Taylor
a6dcb7d465
runtime: Catch signals on altstack, disable splitstack signal blocking.
...
From-SVN: r182607
2011-12-21 22:24:47 +00:00
Ian Lance Taylor
d8fa39bfc8
libgo/runtime: Don't define _GNU_SOURCE in source code.
...
From-SVN: r182550
2011-12-20 18:49:40 +00:00
Ian Lance Taylor
ab61e9c4da
libgo: Update to weekly.2011-11-18.
...
From-SVN: r182266
2011-12-12 23:40:51 +00:00
Ian Lance Taylor
506cf9aaea
libgo: Update to weekly.2011-11-01.
...
From-SVN: r181938
2011-12-02 19:34:41 +00:00
Ian Lance Taylor
f4c016e605
runtime: Remove temporary runtime_cond_wait function.
...
From-SVN: r181897
2011-12-01 23:50:48 +00:00
Ian Lance Taylor
3e68d6d75a
compiler/runtime: Copy channel implementation from master library.
...
From-SVN: r181874
2011-12-01 08:06:16 +00:00
Ian Lance Taylor
b87974949f
runtime: Copy runtime_panicstring from master library.
...
From-SVN: r181830
2011-11-30 00:21:52 +00:00
Ian Lance Taylor
737087cbc8
runtime: Multiplex goroutines onto OS threads.
...
From-SVN: r181772
2011-11-28 05:45:49 +00:00
Ian Lance Taylor
48e7d50e9f
runtime: New lock/note implementation.
...
From-SVN: r181633
2011-11-22 20:24:44 +00:00
Ian Lance Taylor
5c262e9444
runtime: Use some of 6g runtime.c for easier merging.
...
From-SVN: r181368
2011-11-14 22:26:45 +00:00
Ian Lance Taylor
34277c5228
Introduce G structure and thread-local global g.
...
From-SVN: r181301
2011-11-11 21:02:48 +00:00
Ian Lance Taylor
d8f412571f
Update Go library to last weekly.
...
From-SVN: r180552
2011-10-26 23:57:58 +00:00
Ian Lance Taylor
adb0401dac
Update Go library to r60.
...
From-SVN: r178910
2011-09-16 15:47:21 +00:00
Ian Lance Taylor
9ff56c9570
Update to current version of Go library.
...
From-SVN: r173931
2011-05-20 00:18:15 +00:00
Rainer Orth
06ec98415a
libgo: Always initialize semaphores.
...
2011-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR go/48222
* runtime/malloc.goc (runtime_mallocinit): Call
runtime_Mprof_Init, runtime_initfintab.
* runtime/cpuprof.c (runtime_cpuprofinit): New function.
* runtime/runtime.h (runtime_cpuprofinit): Declare it.
* runtime/go-main.c (main): Use it.
From-SVN: r171960
2011-04-04 23:43:59 +00:00
Ian Lance Taylor
c29301d6b1
Add runtime profiling infrastructure, not yet working.
...
From-SVN: r171579
2011-03-27 19:14:55 +00:00
Ian Lance Taylor
5133f00ef8
Update to current version of Go library (revision 94d654be2064).
...
From-SVN: r171076
2011-03-16 23:05:44 +00:00
Ian Lance Taylor
ca7174cf5c
re PR go/47515 (Issues porting libgo to IRIX 6.5)
...
PR go/47515
runtime: If no MAP_ANON, use /dev/zero.
From-SVN: r169388
2011-01-29 07:16:20 +00:00
Ian Lance Taylor
cf606aeb06
Avoid deadlock when finalizer lock is held during gc.
...
From-SVN: r169112
2011-01-21 23:33:52 +00:00
Ian Lance Taylor
a4ad1c7a08
Rework locking code to split stack much less.
...
From-SVN: r167973
2010-12-17 06:42:06 +00:00
Ian Lance Taylor
7a9389330e
Add Go frontend, libgo library, and Go testsuite.
...
gcc/:
* gcc.c (default_compilers): Add entry for ".go".
* common.opt: Add -static-libgo as a driver option.
* doc/install.texi (Configuration): Mention libgo as an option for
--enable-shared. Mention go as an option for --enable-languages.
* doc/invoke.texi (Overall Options): Mention .go as a file name
suffix. Mention go as a -x option.
* doc/frontends.texi (G++ and GCC): Mention Go as a supported
language.
* doc/sourcebuild.texi (Top Level): Mention libgo.
* doc/standards.texi (Standards): Add section on Go language.
Move references for other languages into their own section.
* doc/contrib.texi (Contributors): Mention that I contributed the
Go frontend.
gcc/testsuite/:
* lib/go.exp: New file.
* lib/go-dg.exp: New file.
* lib/go-torture.exp: New file.
* lib/target-supports.exp (check_compile): Match // Go.
From-SVN: r167407
2010-12-03 04:34:57 +00:00