1
0
mirror of https://github.com/golang/go synced 2024-11-25 07:07:57 -07:00

misc/cgo: re-enable testso

The test.bash file generates .so file using gcc, builds the executable
using the go tool and then run it with the $LD_LIBRARY_PATH variable
pointing to the directory where the .so file lives.

Fixes #2982.

R=rsc, remyoudompheng
CC=golang-dev
https://golang.org/cl/5788043
This commit is contained in:
Francisco Souza 2012-03-08 12:13:41 -05:00 committed by Russ Cox
parent 9b73238daa
commit dc57ed8caf
7 changed files with 14 additions and 29 deletions

View File

@ -27,6 +27,7 @@ doc/tmpltohtml
doc/articles/wiki/*.bin doc/articles/wiki/*.bin
misc/cgo/life/run.out misc/cgo/life/run.out
misc/cgo/stdio/run.out misc/cgo/stdio/run.out
misc/cgo/testso/testso
misc/dashboard/builder/builder misc/dashboard/builder/builder
misc/goplay/goplay misc/goplay/goplay
misc/osx/*.pkg misc/osx/*.pkg

View File

@ -1,22 +0,0 @@
# 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.
include ../../../src/Make.inc
TARG=cgosotest
CGO_DEPS+=libcgoso.so
CGO_LDFLAGS+=-lcgoso -L.
CLEANFILES+=out libcgoso.so
CGOFILES=\
cgoso.go\
include ../../../src/Make.pkg
libcgoso.so: cgoso_c.c
gcc cgoso_c.c -fPIC -o $@ $(_CGO_CFLAGS_$(GOARCH)) $(_CGO_LDFLAGS_$(GOOS))
out: install main.go
$(GC) $(GCFLAGS) $(GCIMPORTS) main.go
$(LD) -o $@ main.$O

View File

@ -4,7 +4,10 @@
package cgosotest package cgosotest
//void sofunc(void); /*
#cgo LDFLAGS: -L. -lcgosotest
void sofunc(void);
*/
import "C" import "C"
func Test() { func Test() {

View File

@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build ignore
void sofunc(void) void sofunc(void)
{ {
extern void goCallback(void); extern void goCallback(void);

View File

@ -2,9 +2,11 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// +build ignore
package main package main
import "cgosotest" import "."
func main() { func main() {
cgosotest.Test() cgosotest.Test()

View File

@ -4,6 +4,7 @@
# license that can be found in the LICENSE file. # license that can be found in the LICENSE file.
set -e set -e
gomake out gcc -fPIC -g -shared -o libcgosotest.so cgoso_c.c
LD_LIBRARY_PATH=. ./out go build main.go
gomake clean LD_LIBRARY_PATH=. ./main
rm -f libcgosotest.so main

View File

@ -55,12 +55,10 @@ xcd() {
go test go test
) || exit $? ) || exit $?
$BROKEN ||
[ "$CGO_ENABLED" != 1 ] || [ "$CGO_ENABLED" != 1 ] ||
[ "$GOHOSTOS" == windows ] || [ "$GOHOSTOS" == windows ] ||
[ "$GOHOSTOS" == darwin ] || [ "$GOHOSTOS" == darwin ] ||
(xcd ../misc/cgo/testso (xcd ../misc/cgo/testso
"$GOMAKE" clean
./test.bash ./test.bash
) || exit $? ) || exit $?