gcc/libgo
Ian Lance Taylor 867b003fd7 runtime: skip zero-sized fields in structs when converting to FFI
The libffi library doesn't understand zero-sized objects.
    When we see a zero-sized field in a struct, just skip it when
    converting to the FFI data structures. There is no value to pass in
    any case, so not telling libffi about the field doesn't affect
    anything.
    
    The test case for this is https://golang.org/cl/123316.
    
    Fixes golang/go#26335
    
    Reviewed-on: https://go-review.googlesource.com/123335

From-SVN: r262651
2018-07-13 20:39:02 +00:00
..
config libgo: Update libtool support to files in current GCC trunk. 2014-11-12 03:51:36 +00:00
go runtime: skip zero-sized fields in structs when converting to FFI 2018-07-13 20:39:02 +00:00
misc/cgo libgo: update to Go 1.10.3 release 2018-06-13 13:51:23 +00:00
runtime runtime: don't stat a NULL filename 2018-06-28 20:54:04 +00:00
testsuite libgo: add support for the Nios II architecture 2018-05-02 22:28:46 +00:00
LICENSE LICENSE: separate, change PATENTS text. 2010-12-06 22:27:47 +00:00
MERGE libgo: update to Go 1.10.3 release 2018-06-13 13:51:23 +00:00
Makefile.am go/build, cmd/go: update to match recent changes to gc 2018-05-09 21:49:47 +00:00
Makefile.in go/build, cmd/go: update to match recent changes to gc 2018-05-09 21:49:47 +00:00
PATENTS LICENSE: separate, change PATENTS text. 2010-12-06 22:27:47 +00:00
README libgo/README: Minor updates. 2015-03-13 18:53:13 +00:00
README.gcc libgo/README.gcc: Mention GCCGO_RUN_ALL_TESTS. 2011-03-09 19:17:56 +00:00
VERSION libgo: update to Go 1.10.3 release 2018-06-13 13:51:23 +00:00
aclocal.m4 libgo: fixes for Solaris build 2016-12-13 18:03:45 +00:00
check-packages.txt libgo: update to Go 1.10.2 release 2018-05-31 21:42:53 +00:00
config.h.in syscall: remove Ustat 2018-06-22 14:25:52 +00:00
configure syscall: remove Ustat 2018-06-22 14:25:52 +00:00
configure.ac syscall: remove Ustat 2018-06-22 14:25:52 +00:00
goarch.sh libgo: add riscv and js/wasm as known targets 2018-06-11 19:16:34 +00:00
godeps.sh libgo: update to Go1.10beta1 2018-01-09 01:23:08 +00:00
gotool-packages.txt libgo: refactor code to enumerate stdlib packages 2018-05-02 21:57:35 +00:00
libgo-packages.txt libgo: refactor code to enumerate stdlib packages 2018-05-02 21:57:35 +00:00
libgo.imp Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
match.sh libgo: add support for the Nios II architecture 2018-05-02 22:28:46 +00:00
merge.sh libgo: update to Go1.10beta1 2018-01-09 01:23:08 +00:00
mkrsysinfo.sh libgo: adapt Solaris 12 references 2017-11-14 14:26:04 +00:00
mkruntimeinc.sh libgo: refactor code to enumerate stdlib packages 2018-05-02 21:57:35 +00:00
mksigtab.sh libgo: don't use grep -q in mksigtab.sh 2017-11-22 00:27:29 +00:00
mksysinfo.sh syscall: remove Ustat 2018-06-22 14:25:52 +00:00
mvifdiff.sh runtime: introduce mvifdiff.sh script to replace GCC's move-if-change 2014-12-01 01:06:29 +00:00
sysinfo.c syscall: remove Ustat 2018-06-22 14:25:52 +00:00

README

See ../README.

This is the runtime support library for the Go programming language.
This library is intended for use with the Go frontend.

This library should not be stripped when it is installed.  Go code
relies on being able to look up file/line information, which comes
from the debugging info using the libbacktrace library.

The library has only been tested on GNU/Linux using glibc, and on
Solaris.  It should not be difficult to port to other operating
systems.

Directories:

go
  A copy of the Go library from http://golang.org/, with several
  changes for gccgo.

runtime
  Runtime functions, written in C, which are called directly by the
  compiler or by the library.

Contributing
============

To contribute patches to the files in this directory, please see
http://golang.org/doc/gccgo_contribute.html .

The master copy of these files is hosted at
http://code.google.com/p/gofrontend .  Changes to these files require
signing a Google contributor license agreement.  If you are the
copyright holder, you will need to agree to the individual contributor
license agreement at
http://code.google.com/legal/individual-cla-v1.0.html.  This agreement
can be completed online.

If your organization is the copyright holder, the organization will
need to agree to the corporate contributor license agreement at
http://code.google.com/legal/corporate-cla-v1.0.html.

If the copyright holder for your code has already completed the
agreement in connection with another Google open source project, it
does not need to be completed again.