cmd/go: pass -funwind-tables when compiling C code

Using -funwind-tables is necessary to permit Go code to correctly
    throw a panic through C code.  This hasn't been necessary in the past
    as -funwind-tables is the default on x86.  However, it is not the
    default for PPC AIX.
    
    Reviewed-on: https://go-review.googlesource.com/56650

From-SVN: r251179
This commit is contained in:
Ian Lance Taylor 2017-08-18 04:40:42 +00:00
parent 091f25d752
commit c32bd276c6
2 changed files with 7 additions and 1 deletions

View File

@ -1,4 +1,4 @@
152164a7249ecc5c2bfd4a091450dc7c2855f609
9ff49c64ea6dbb5e08d1fa859b99b06049413279
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -3268,6 +3268,12 @@ func (b *builder) ccompilerCmd(envvar, defcmd, objdir string) []string {
a = append(a, "-fno-common")
}
// gccgo uses the language-independent exception mechanism to
// handle panics, so it always needs unwind tables.
if _, ok := buildToolchain.(gccgoToolchain); ok {
a = append(a, "-funwind-tables")
}
return a
}