Commit Graph

97 Commits

Author SHA1 Message Date
Ian Lance Taylor
a2bf11d16a libgo: If compiler can split-stack and linker can not, use -fno-split-stack.
If the compiler supports split-stack but we are using a gold linker that
    does not, as happens on PPC with current GCC but old gold, then we need
    to compile the Go code with -fno-split-stack to avoid a linker error
    avoid the inability to call from split-stack code to non-split-stack
    code.
    
    Reviewed-on: https://go-review.googlesource.com/14598

From-SVN: r227811
2015-09-15 21:15:37 +00:00
Ian Lance Taylor
c33c18cdc6 libgo: test linking split-stack and non-split-stack together
PPC has split-stack support in current GCC, but old version of gold will
    reject attempts to link PPC split-stack and non-split-stack code
    together.  Test for that, and don't compile the C code with
    -fsplit-stack if it doesn't work.
    
    Reviewed-on: https://go-review.googlesource.com/14594

From-SVN: r227802
2015-09-15 17:05:14 +00:00
Ian Lance Taylor
44c925bdb0 libgo: don't provide ustat on arm64 GNU/Linux
This avoids linker warnings when linking against glibc, as apparently
    arm64 GNU/Linux does not support the ustat system call.
    
    Also update to automake 1.11.6, as that is the new GCC standard.
    
    Reviewed-on: https://go-review.googlesource.com/14567

From-SVN: r227777
2015-09-15 03:43:01 +00:00
Ian Lance Taylor
476013d60b libgo: Use stat_atim.go on Solaris 12+
From Rainer Orth.
    
    Solaris 12 changes the stat_[amc]tim members of struct stat from
    timestruc_t to timespec_t for XPG7 compatiblity, thus breaking the libgo
    build.  The following patch checks for this change and uses the common
    stat_atim.go if appropriate.
    
    Reviewed-on: https://go-review.googlesource.com/14495

From-SVN: r227665
2015-09-10 21:17:00 +00:00
Ian Lance Taylor
5ea73ae3b8 libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test.
From Eric Botcazou.

From-SVN: r223231
2015-05-16 00:17:46 +00:00
Ian Lance Taylor
d5d9c650a2 libgo: Bump version number in libgo configure script.
From-SVN: r219629
2015-01-15 00:52:38 +00:00
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
Ian Lance Taylor
6f7ccafa91 runtime: GOARCH values for ppc64 BE & LE
ppc64 for BE
ppc64le for LE
issue 8654

From-SVN: r217941
2014-11-21 18:22:05 +00:00
Ian Lance Taylor
4c46b5f0c2 runtime: set library name based on compiler name
Different compilers may have different release cadences or ABI
incompatibilities, so it does not make sense to use the same library
name for runtime libraries intended for different compilers.

This CL causes a libgo built by llgo to receive the name libgo-llgo.
Likewise, libgobegin is named libgobegin-llgo.

From-SVN: r217583
2014-11-14 18:02:50 +00:00
Ian Lance Taylor
327a26a3af libgo: Update libtool support to files in current GCC trunk.
From-SVN: r217404
2014-11-12 03:51:36 +00:00
Ian Lance Taylor
1fec5f5274 libgo: add s390 support
From Dominik Vogt.

* libgo/go/syscall/libcall_linux_s390.go: New file for s390 support.
* libgo/go/syscall/syscall_linux_s390.go: Ditto.
* libgo/go/syscall/libcall_linux_s390x.go: New file for s390x support.
* libgo/go/syscall/syscall_linux_s390x.go: Ditto.
* libgo/go/runtime/pprof/pprof.go (printStackRecord): Support s390 and
s390x.
* libgo/runtime/runtime.c (runtime_cputicks): Add support for s390 and
s390x
* libgo/mksysinfo.sh: Ditto.
(upcase_fields): New helper function

* libgo/go/debug/elf/file.go (applyRelocations): Implement relocations
on s390x.
(applyRelocationsS390x): Ditto.
(DWARF): Ditto.
* libgo/go/debug/elf/elf.go (R_390): New constants for S390 relocations.
(r390Strings): Ditto.
(String): Helper function for S390 relocations.
(GoString): Ditto.

* libgo/go/reflect/makefuncgo_s390.go: New file.
(S390MakeFuncStubGo): Implementation of s390 abi.
* libgo/go/reflect/makefuncgo_s390x.go: New file.
(S390xMakeFuncStubGo): Implementation of s390x abi.
* libgo/go/reflect/makefunc_s390.c: New file.
(makeFuncStub): s390 and s390x specific implementation of function.
* libgo/go/reflect/makefunc.go
(MakeFunc): Add support for s390 and s390x.
(makeMethodValue): Ditto.
(makeValueMethod): Ditto.
* libgo/Makefile.am (go_reflect_makefunc_s_file): Ditto.
(go_reflect_makefunc_file): Ditto.
* libgo/go/reflect/makefunc_dummy.c: Ditto.
* libgo/runtime/runtime.h (__go_makefunc_can_recover): Export prototype
for use in makefunc_s390.c.
(__go_makefunc_returning): Ditto.

* libgo/go/syscall/exec_linux.go (forkAndExecInChild): Fix order of the
arguments of the clone system call for s390[x].

* libgo/configure.ac (is_s390): New variable.
(is_s390x): Ditto
(LIBGO_IS_S390): Ditto.
(LIBGO_IS_S390X): Ditto.
(GOARCH): Support s390 and s390x.
* libgo/go/go/build/build.go (cgoEnabled): Ditto.
* libgo/go/go/build/syslist.go (goarchList): Ditto.

From-SVN: r217106
2014-11-04 22:39:30 +00:00
Ian Lance Taylor
204b9fc2b8 configure: Quote some shell variables.
From Dominik Vogt.

From-SVN: r216355
2014-10-17 00:03:20 +00:00
Ian Lance Taylor
a819231d57 libgo/configure: Use -Qunused-arguments for asm tests if supported.
This supports clang, which by default issues warnings about
unused command line arguments, a habit that interacts poorly
with configure scripts.

From-SVN: r215699
2014-09-29 23:37:27 +00:00
Ian Lance Taylor
90fe3cc61f libgo: Bump version number.
From-SVN: r212840
2014-07-19 10:12:01 +00:00
Ian Lance Taylor
9a85ed03da runtime: add the --without-libatomic configure option
This adds the --without-libatomic configure option, which is useful for building libgo
with a non-gcc compiler.

It disables libgo's dependency on libatomic. This
is useful for platforms where it is known that the libatomic runtime
functions are not required, or where the compiler automatically
provides an implementation of them.

From-SVN: r211065
2014-05-29 20:22:27 +00:00
Ian Lance Taylor
d3b4df0b17 mksysinfo: Define CLONE flags.
From-SVN: r210189
2014-05-07 21:48:29 +00:00
Ian Lance Taylor
6c76a95d1b runtime: ask $GOC rather than $CC for the version and multi-os-directory
The Go compiler may have different values for these than the C compiler.

From-SVN: r209967
2014-05-01 00:35:58 +00:00
Ian Lance Taylor
73cc28d4e7 libgo: Remove Solaris 8 & 9 support.
From Rainer Orth.

From-SVN: r209448
2014-04-16 20:33:57 +00:00
Ian Lance Taylor
33a9145bb7 libgo: Build math package with -ffp-contract=off on non-x86.
http://golang.org/issue/7074 shows that not using
-ffp-contract=off produces the wrong result for math.Log2(1)
on arm64.

From-SVN: r208505
2014-03-12 04:38:52 +00:00
Ian Lance Taylor
f56c5dd19c libgo/configure: Test for gold with gccgo -Wl,--help, not ld --help.
From-SVN: r206937
2014-01-22 19:10:47 +00:00
Ian Lance Taylor
71d0d50aa3 go/build: Set GOARCH on arm64 systems.
I am reliably informed that the architecture name and letter for the
plan9/inferno compilers for 64-bit ARM systems will be "arm64" and "7"
respectively, so let's get that bit in nice and early.

From Michael Hudson-Doyle.
https://codereview.appspot.com/34830045/

From-SVN: r206374
2014-01-06 19:24:23 +00:00
Ian Lance Taylor
6b05faddf0 syscall: Only call varargs libc functions from C code.
From-SVN: r205321
2013-11-24 02:38:28 +00:00
Ian Lance Taylor
42c447c0c4 libgo: Update libtool support for powerpc64le-linux-gnu.
From Ulrich Weigand.

From-SVN: r205287
2013-11-22 20:39:46 +00:00
Ian Lance Taylor
824393bd5b libgo: Fix typo for is_dragonfly in configure script.
From-SVN: r204999
2013-11-19 02:11:38 +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
d5b18b0b13 syscall: Add Dup3, {Get,List,Remove,Set}xattr, {Get,Set}priority.
From-SVN: r203788
2013-10-17 18:41:12 +00:00
Ian Lance Taylor
cc1a9ac808 reflect: Use hand-coded .eh_frame section rather than CFI directives.
From Rainer Orth.

From-SVN: r203120
2013-10-02 17:30:07 +00:00
Ian Lance Taylor
6e6bbb604e libgo: Update libtool.m4 from upstream to recognize powerpcle.
From-SVN: r201933
2013-08-23 01:08:25 +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
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
553752e19f libgo: Correct test for whether to use DejaGNU.
From-SVN: r195861
2013-02-07 18:01:54 +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
d6f2922e91 libgo: Update Go library to master revision 15489/921e53d4863c.
From-SVN: r195560
2013-01-29 20:52:43 +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
e8028ecdd0 re PR go/54918 (libgo.so.0 is not runtime compatible between gcc-4.6.2 and gcc-4.7.x)
PR go/54918
libgo: Set library version number.

From-SVN: r192706
2012-10-23 05:01:24 +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
0d7afaa749 runtime: Use dl_iterate_phdr to get TLS size.
From-SVN: r188290
2012-06-07 00:55:20 +00:00
Ian Lance Taylor
44072af5b0 runtime: Fix call to _dl_get_tls_static_info for i386.
From-SVN: r188230
2012-06-05 06:19:19 +00:00
Ian Lance Taylor
324612b351 re PR go/52358 (math FAILs on Solaris 8 and 9)
PR go/52358
configure, runtime: Provide i386 long double math functions if needed.

From-SVN: r186915
2012-04-27 16:38:11 +00:00
Ian Lance Taylor
f04e40afc1 mksysinfo: More fixes to emulate master Go library.
From-SVN: r186685
2012-04-22 20:07:23 +00:00
Ian Lance Taylor
1410c22260 syscall: Additional constants, some type corrections.
From-SVN: r186655
2012-04-21 18:49:58 +00:00
Ian Lance Taylor
d25a12fc2d net, syscall: Use native endianness for GNU/Linux netlink code.
From-SVN: r186640
2012-04-20 20:11:28 +00:00
Ian Lance Taylor
b059fba469 syscall: Add more constants.
From-SVN: r186144
2012-04-04 18:50:09 +00:00
Ian Lance Taylor
ea8505da90 syscall, net: Fix GNU/Linux netlink code for big-endian systems.
From-SVN: r186123
2012-04-03 23:44:53 +00:00
Ian Lance Taylor
8db6380aa7 mksysinfo.sh: Add some more networking constants.
From-SVN: r186114
2012-04-03 19:42:24 +00:00
Ian Lance Taylor
dbe1e4a5a6 libgo: Fix Solaris ustat.h test.
From-SVN: r184913
2012-03-05 06:04:14 +00:00
Ian Lance Taylor
2aeaf0fb26 libgo: Try to fix use of <ustat.h> for Solaris and older GNU/Linux.
From-SVN: r184828
2012-03-02 21:07:52 +00:00
Ian Lance Taylor
b65734ac6c syscall: Fill out GNU/Linux support.
From-SVN: r184669
2012-02-29 20:02:31 +00:00
Ian Lance Taylor
5d46bf0538 libgo: Add mount flags, fallocate, statfs.
From-SVN: r184365
2012-02-18 01:22:02 +00:00
Ian Lance Taylor
061793a4cc re PR go/52266 (syntax error in libgo/configure)
PR go/52266
libgo: Remove accidental AC_INCLUDES_DEFAULT from configure script.

From-SVN: r184345
2012-02-17 15:44:29 +00:00