Commit Graph

438 Commits

Author SHA1 Message Date
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
73e0b984b3 runtime, testing/quick: libffi doesn't handle complex on Alpha.
From Uros Bizjak.

From-SVN: r196389
2013-03-01 19:26:43 +00:00
Ian Lance Taylor
0a2f103a45 runtime: Don't block SIGTRAP while creating a new thread.
Thanks to Uros Bizjak.

From-SVN: r196362
2013-02-28 21:56:14 +00:00
Ian Lance Taylor
f46d686ef1 re PR go/56171 (syscall FAILs on Solaris)
PR go/56171
syscall: Solaris fixes for passing file descriptor.

From Rainer Orth.

From-SVN: r196180
2013-02-20 20:04:36 +00:00
Ian Lance Taylor
aa777e7a23 re PR go/56320 (Several libgo tests FAIL on 64-bit Solaris/x86)
PR go/56320
runtime: Support Solaris AMD64 in lfstack.
The address space layout is similar on SPARC64 and AMD64 when
running Solaris.

From-SVN: r196179
2013-02-20 19:45:10 +00:00
Ian Lance Taylor
3ab98a471c runtime: Do not reserve huge amount of swap on 32 bit architectures.
The mmap() call which reserves the arena should have MAP_NORESERVE
flag as in typical cases this memory will never be (fully) needed.
This matters in environments which do not do Linux style memory
overcommit, such as OpenIndiana/OpenSolaris/Solaris.

The MAP_NORESERVE flag does not exist on all operating systems
(for example FreeBSD). Therefore we define it to zero value in
case it does not exist.

Fixes issue 21.

From-SVN: r196088
2013-02-15 18:55:09 +00:00
Ian Lance Taylor
ae135907ba re PR go/56171 (syscall FAILs on Solaris)
PR go/56171
libgo: Solaris portability for syscall package.

From Rainer Orth.

From-SVN: r195950
2013-02-11 19:03:04 +00:00
Ian Lance Taylor
d54fc07473 compiler, libgo: Permit testing package when test imports it circularly.
From-SVN: r195931
2013-02-10 06:02:38 +00:00
Ian Lance Taylor
d3deca3973 re PR go/56017 (libgo testsuite does not support cross testing)
PR go/56017
libgo testsuite: If using DejaGNU, don't frob the log file.

From-SVN: r195927
2013-02-09 23:19:33 +00:00
Ian Lance Taylor
d5698f71bb re PR go/56017 (libgo testsuite does not support cross testing)
PR go/56017
libgo DejaGNU testsuite: Load timeout.exp before go.exp.

From-SVN: r195926
2013-02-09 23:02:09 +00:00
Ian Lance Taylor
540817f4ef syscall: Always use _C_int for C libcalls.
From-SVN: r195897
2013-02-08 19:24:26 +00:00
Ian Lance Taylor
48227088fd runtime: Change main in goc2c to return int.
From Uros Bizjak.

From-SVN: r195868
2013-02-07 22:24:34 +00:00
Ian Lance Taylor
af4acefcd7 re PR go/56173 (Several libgo tests FAIL on Solaris/SPARC)
PR go/56173
crypto/md5: fix for big-endian processors

From-SVN: r195867
2013-02-07 21:40:10 +00:00
Ian Lance Taylor
553752e19f libgo: Correct test for whether to use DejaGNU.
From-SVN: r195861
2013-02-07 18:01:54 +00:00
Ian Lance Taylor
aa62fd35b5 re PR go/56172 (net FAILs on Solaris)
PR go/56172
net: Skip TestMulticastListener on Solaris

From Rainer Orth.

From-SVN: r195855
2013-02-07 17:04:24 +00:00
Ian Lance Taylor
d617bce48c re PR go/56172 (net FAILs on Solaris)
PR go/56172
net: Fixes for select based pollster.

Make Close work properly, mainly for testing.  Restart the
select if a descriptor is closed.

From-SVN: r195823
2013-02-06 22:40:18 +00:00
Ian Lance Taylor
5c9768b360 re PR go/56172 (net FAILs on Solaris)
PR go/56172
runtime: Fix argument passed to forcegchelper.

From-SVN: r195774
2013-02-05 23:59:24 +00:00
Ian Lance Taylor
7134cf2833 re PR go/56017 (libgo testsuite does not support cross testing)
PR go/56017
libgo: Use DejaGNU when testing a cross-compiler.

From-SVN: r195766
2013-02-05 22:22:17 +00:00
Ian Lance Taylor
10f92c9c3f re PR go/56171 (syscall FAILs on Solaris)
PR go/56171
syscall: Only run creds_test on GNU/Linux.

From-SVN: r195686
2013-02-02 15:40:14 +00:00
Ian Lance Taylor
7ebe663e98 runtime: Correct handling of runtime.Callers skip parameter.
From-SVN: r195685
2013-02-02 15:11:48 +00:00
Ian Lance Taylor
a1948282e8 runtime: Correct test for morestack.S.
From-SVN: r195640
2013-02-01 05:49:14 +00:00
Ian Lance Taylor
cfbafb9a7e runtime: Recognize morestack.S if there is no function name.
From-SVN: r195634
2013-01-31 23:12:42 +00:00
Ian Lance Taylor
7c81527e48 runtime: Remove confusion about split stack functions in backtrace.
From-SVN: r195627
2013-01-31 19:44:24 +00:00
Ian Lance Taylor
e259a3f2ca runtime: Block signals when creating a new thread.
From-SVN: r195619
2013-01-31 17:30:28 +00:00
Ian Lance Taylor
422e2fc062 runtime: Don't allocate when doing a backtrace.
From-SVN: r195615
2013-01-31 16:41:15 +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
656e11a924 runtime: SPARCv9 fixes for lfstack.
From Rainer Orth.

From-SVN: r195534
2013-01-29 13:58:18 +00:00
Ian Lance Taylor
0d4668c1d5 libgo: Add --enable-werror configure option.
From-SVN: r195482
2013-01-26 00:13:34 +00:00
Ian Lance Taylor
acc6151f4a re PR other/56076 (Several 64-bit libgo tests FAIL in read_line_header)
PR other/56076
runtime: Support sparc64 in lfstack.

From-SVN: r195479
2013-01-25 23:43:23 +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
72d1cef254 re PR go/46986 (Go is not supported on Darwin)
PR go/46986
libgo/Makefile, libgo/go/os/stat_atimespec.go: fix typos

From-SVN: r195436
2013-01-24 18:12: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
5c167ca0a2 compiler: Error if name defined in both package and file blocks.
From-SVN: r194685
2012-12-21 22:23:23 +00:00
Ian Lance Taylor
69fffc1f0e libgo: Link against libatomic_convenience.la.
gcc/go:
	PR go/55201
	* gospec.c: Revert last patch.

gcc/testsuite:
	PR go/55201
	* lib/go.exp: Revert last patch.

From-SVN: r194593
2012-12-18 22:07:38 +00:00
Andreas Schwab
0b8ca8fefe libgo: Link against libatomic.
./:
	PR go/55201
	* Makefile.def (all-target-libgo): Depend on all-target-libatomic.
	* Makefile.in: Regenerate.
gcc/go:
	PR go/55201
	* gospec.c (LIBATOMIC): Define.
	(LIBATOMIC_PROFILE): Define.
	(lang_specific_driver): Add LIBATOMIC[_PROFILE] option.
gcc/testsuite:
	* lib/go.exp (go_link_flags): Add libatomic location to flags and
	ld_library_path.

From-SVN: r194581
2012-12-18 14:28:24 +00:00
Ian Lance Taylor
a57bf4070a log/syslog: Solaris portability patches.
From-SVN: r194566
2012-12-17 21:07:27 +00:00
Ian Lance Taylor
35f33e3802 runtime: Delete from a nil map is now a no-op.
From-SVN: r194462
2012-12-12 23:29:10 +00:00
Ian Lance Taylor
a42a906c42 libgo: Update to current master library sources.
From-SVN: r194460
2012-12-12 23:13:29 +00:00
Ian Lance Taylor
4d901dd735 os: Clean up directory reading code.
From-SVN: r194237
2012-12-06 02:00:13 +00:00
Ian Lance Taylor
03a6c305d3 syscall: Fix splice syscall.
From-SVN: r194185
2012-12-05 08:49:01 +00:00
Ian Lance Taylor
98fd70c20f mksysinfo: Fix TIOCNOTTY and TIOCSCTTY for ARM.
From Matthias Klose.

From-SVN: r194118
2012-12-04 06:23:37 +00:00
Ian Lance Taylor
4731f878b7 runtime: Fix build failures with -D_FORTIFY_SOURCE=2.
From-SVN: r194116
2012-12-04 06:18:07 +00:00
Ian Lance Taylor
744c3195ef compiler, runtime: Track fields with tag go:"track".
* go-gcc.cc: Include "output.h".
	(global_variable): Add is_unique_section parameter.
	(global_variable_set_init): Adjust unique section if necessary.
	* Make-lang.in (go/go-gcc.o): Add dependency on output.h.

From-SVN: r193945
2012-11-29 18:11:17 +00:00
Ian Lance Taylor
40ff695f5c syscall: Fix handling of Unix domain @ addresses.
From-SVN: r193783
2012-11-24 20:46:59 +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
a3ce4803ea reflect: Fix invalid sharing in valueInterface.
From-SVN: r193614
2012-11-19 05:34:08 +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
86f2731e63 syscall: Force first letter of error message to lower case.
From-SVN: r193449
2012-11-12 19:34:52 +00:00