mirror of
https://github.com/golang/go.git
synced 2025-05-23 08:21:24 +00:00
This CL adds a step to the build procedure for cgo programs. It uses 'ld -r' to combine all gcc compiled object file and generate a relocatable object file for our ld. Additionally, this linking step will combine some static linking gcc library into the relocatable object file, so that we can use libgcc, libmingwex and libmingw32 without problem. Fixes #3261. Fixes #1741. Added a testcase for linking in libgcc. TODO: 1. still need to fix the INDIRECT_SYMBOL_LOCAL problem on Darwin/386. 2. still need to enable the libgcc test on Linux/ARM, because 5l can't deal with thumb libgcc. Tested on Darwin/amd64, Darwin/386, FreeBSD/amd64, FreeBSD/386, Linux/amd64, Linux/386, Linux/ARM, Windows/amd64, Windows/386 R=iant, rsc, bradfitz, coldredlemur CC=golang-dev https://golang.org/cl/5822049
33 lines
1.5 KiB
Go
33 lines
1.5 KiB
Go
// Copyright 2011 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package cgotest
|
|
|
|
import "testing"
|
|
|
|
// The actual test functions are in non-_test.go files
|
|
// so that they can use cgo (import "C").
|
|
// These wrappers are here for gotest to find.
|
|
|
|
func TestAlign(t *testing.T) { testAlign(t) }
|
|
func TestConst(t *testing.T) { testConst(t) }
|
|
func TestEnum(t *testing.T) { testEnum(t) }
|
|
func TestAtol(t *testing.T) { testAtol(t) }
|
|
func TestErrno(t *testing.T) { testErrno(t) }
|
|
func TestMultipleAssign(t *testing.T) { testMultipleAssign(t) }
|
|
func TestCallback(t *testing.T) { testCallback(t) }
|
|
func TestCallbackGC(t *testing.T) { testCallbackGC(t) }
|
|
func TestCallbackPanic(t *testing.T) { testCallbackPanic(t) }
|
|
func TestCallbackPanicLoop(t *testing.T) { testCallbackPanicLoop(t) }
|
|
func TestCallbackPanicLocked(t *testing.T) { testCallbackPanicLocked(t) }
|
|
func TestZeroArgCallback(t *testing.T) { testZeroArgCallback(t) }
|
|
func TestBlocking(t *testing.T) { testBlocking(t) }
|
|
func Test1328(t *testing.T) { test1328(t) }
|
|
func TestParallelSleep(t *testing.T) { testParallelSleep(t) }
|
|
func TestSetEnv(t *testing.T) { testSetEnv(t) }
|
|
func TestHelpers(t *testing.T) { testHelpers(t) }
|
|
func TestLibgcc(t *testing.T) { testLibgcc(t) }
|
|
|
|
func BenchmarkCgoCall(b *testing.B) { benchCgoCall(b) }
|