From 141eb62b271e86f160340936655dfbc302b31356 Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 4 Nov 2014 22:39:30 +0000 Subject: 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217106 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgo/Makefile.am | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'libgo/Makefile.am') diff --git a/libgo/Makefile.am b/libgo/Makefile.am index 3a42250eee7..79cfdd85fb3 100644 --- a/libgo/Makefile.am +++ b/libgo/Makefile.am @@ -943,11 +943,26 @@ go_reflect_makefunc_file = \ go_reflect_makefunc_s_file = \ go/reflect/makefunc_386.S else +if LIBGO_IS_S390 +go_reflect_makefunc_file = \ + go/reflect/makefuncgo_s390.go +go_reflect_makefunc_s_file = \ + go/reflect/makefunc_s390.c +else +if LIBGO_IS_S390X +go_reflect_makefunc_file = \ + go/reflect/makefuncgo_s390x.go \ + go/reflect/makefuncgo_s390.go +go_reflect_makefunc_s_file = \ + go/reflect/makefunc_s390.c +else go_reflect_makefunc_file = go_reflect_makefunc_s_file = \ go/reflect/makefunc_dummy.c endif endif +endif +endif go_reflect_files = \ go/reflect/deepequal.go \ -- cgit v1.2.1