Cross Compile with dependency on github.com/google/gopacket fails

983 views
Skip to first unread message

Rahul Somasunderam

unread,
Jul 19, 2015, 5:51:49 PM7/19/15
to golan...@googlegroups.com
I'm trying to cross compile my project which has dependencies on google/gopacket.
I'm using gox for this, but that might not be relevant.

When it cross compiles for any architecture besides the current one, I get this error:

--> darwin/386 error: exit status 2

Stderr: # _/root/tlsdr/tlsdr

./ParserUtil.go:17: undefined: pcap.OpenOffline


Is there a workaround to this?


R,

rahul

Ian Lance Taylor

unread,
Jul 19, 2015, 7:40:22 PM7/19/15
to Rahul Somasunderam, golang-nuts
I didn't look at the code, so this is just a guess, but I suspect that
you need to set CGO_ENABLED=1 when you build the Go cross-compiler,
which will in turn require that you have a C cross-compiler installed.

Ian

Rahul Somasunderam

unread,
Jul 19, 2015, 11:53:14 PM7/19/15
to golan...@googlegroups.com, rahu...@gmail.com
Thanks! That seems to have taken me a little further. It's still failing though...
I enabled -cgo and installed gcc and glibc-devel.i686. 

This is my source:

package main


import (

    _ "github.com/google/gopacket"

    "github.com/google/gopacket/pcap"

)


func main() {

    pcap.OpenOffline("foo.pcap")

}


This is the output of gox:

Number of parallel builds: 1


-->      darwin/386: _/root/test

-->    darwin/amd64: _/root/test

-->       linux/386: _/root/test

-->     linux/amd64: _/root/test

-->       linux/arm: _/root/test

-->     freebsd/386: _/root/test

-->   freebsd/amd64: _/root/test

-->     openbsd/386: _/root/test

-->   openbsd/amd64: _/root/test

-->     windows/386: _/root/test

-->   windows/amd64: _/root/test

-->     freebsd/arm: _/root/test

-->      netbsd/386: _/root/test

-->    netbsd/amd64: _/root/test

-->      netbsd/arm: _/root/test


14 errors occurred:

--> darwin/386 error: exit status 2

Stderr: # runtime/cgo

/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: cannot find /lib/libgcc_s.so.1

collect2: error: ld returned 1 exit status


--> darwin/amd64 error: exit status 2

Stderr: # net

could not determine kind of name for C.AI_MASK


--> linux/386 error: exit status 2

Stderr: # runtime/cgo

/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: cannot find /lib/libgcc_s.so.1

collect2: error: ld returned 1 exit status


--> linux/arm error: exit status 2

Stderr: # runtime/cgo

gcc: error: unrecognized command line option '-marm'


--> freebsd/386 error: exit status 2

Stderr: # runtime/cgo

/usr/local/go/src/runtime/cgo/gcc_freebsd_386.c:6:27: fatal error: sys/signalvar.h: No such file or directory

compilation terminated.


--> freebsd/amd64 error: exit status 2

Stderr: # runtime/cgo

/usr/local/go/src/runtime/cgo/gcc_freebsd_amd64.c:6:27: fatal error: sys/signalvar.h: No such file or directory

compilation terminated.


--> openbsd/386 error: exit status 2

Stderr: # runtime/cgo

/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: cannot find /lib/libgcc_s.so.1

collect2: error: ld returned 1 exit status


--> openbsd/amd64 error: exit status 2

Stderr: # runtime/cgo

/tmp/go-build833614679/runtime/cgo/_obj/gcc_openbsd_amd64.o: In function `tcb_fixup':

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:48: undefined reference to `__get_tcb'

/tmp/go-build833614679/runtime/cgo/_obj/gcc_openbsd_amd64.o: In function `init_pthread_wrapper':

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:72: undefined reference to `dlopen'

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:77: undefined reference to `dlsym'

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:74: undefined reference to `dlerror'

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:79: undefined reference to `dlerror'

/tmp/go-build833614679/runtime/cgo/_obj/gcc_openbsd_amd64.o: In function `tcb_fixup':

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:50: undefined reference to `__set_tcb'

/tmp/go-build833614679/runtime/cgo/_obj/gcc_openbsd_amd64.o: In function `init_pthread_wrapper':

/usr/local/go/src/runtime/cgo/gcc_openbsd_amd64.c:82: undefined reference to `dlclose'

collect2: error: ld returned 1 exit status


--> windows/386 error: exit status 2

Stderr: # runtime/cgo

gcc: error: unrecognized command line option ‘-mthreads’


--> windows/amd64 error: exit status 2

Stderr: # runtime/cgo

gcc: error: unrecognized command line option ‘-mthreads’


--> freebsd/arm error: exit status 2

Stderr: # runtime/cgo

gcc: error: unrecognized command line option '-marm'


--> netbsd/386 error: exit status 2

Stderr: # runtime/cgo

/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: cannot find /lib/libgcc_s.so.1

collect2: error: ld returned 1 exit status


--> netbsd/amd64 error: exit status 2

Stderr: # github.com/google/gopacket/pcap

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_activate':

../.go/src/github.com/google/gopacket/pcap/pcap.go:146: undefined reference to `pcap_activate'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_can_set_rfmon':

../.go/src/github.com/google/gopacket/pcap/pcap.go:160: undefined reference to `pcap_can_set_rfmon'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_compile':

../.go/src/github.com/google/gopacket/pcap/pcap.go:187: undefined reference to `pcap_compile'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_create':

../.go/src/github.com/google/gopacket/pcap/pcap.go:201: undefined reference to `pcap_create'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_datalink':

../.go/src/github.com/google/gopacket/pcap/pcap.go:215: undefined reference to `pcap_datalink'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_datalink_val_to_description':

../.go/src/github.com/google/gopacket/pcap/pcap.go:229: undefined reference to `pcap_datalink_val_to_description'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_datalink_val_to_name':

../.go/src/github.com/google/gopacket/pcap/pcap.go:243: undefined reference to `pcap_datalink_val_to_name'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_findalldevs':

../.go/src/github.com/google/gopacket/pcap/pcap.go:258: undefined reference to `pcap_findalldevs'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_geterr':

../.go/src/github.com/google/gopacket/pcap/pcap.go:307: undefined reference to `pcap_geterr'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_lib_version':

../.go/src/github.com/google/gopacket/pcap/pcap.go:319: undefined reference to `pcap_lib_version'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_list_datalinks':

../.go/src/github.com/google/gopacket/pcap/pcap.go:334: undefined reference to `pcap_list_datalinks'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_list_tstamp_types':

../.go/src/github.com/google/gopacket/pcap/pcap.go:349: undefined reference to `pcap_list_tstamp_types'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_lookupnet':

../.go/src/github.com/google/gopacket/pcap/pcap.go:366: undefined reference to `pcap_lookupnet'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_next_ex':

../.go/src/github.com/google/gopacket/pcap/pcap.go:382: undefined reference to `pcap_next_ex'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_offline_filter':

../.go/src/github.com/google/gopacket/pcap/pcap.go:398: undefined reference to `pcap_offline_filter'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_open_live':

../.go/src/github.com/google/gopacket/pcap/pcap.go:416: undefined reference to `pcap_open_live'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_open_offline':

../.go/src/github.com/google/gopacket/pcap/pcap.go:430: undefined reference to `pcap_open_offline'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_sendpacket':

../.go/src/github.com/google/gopacket/pcap/pcap.go:447: undefined reference to `pcap_sendpacket'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_buffer_size':

../.go/src/github.com/google/gopacket/pcap/pcap.go:463: undefined reference to `pcap_set_buffer_size'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_datalink':

../.go/src/github.com/google/gopacket/pcap/pcap.go:479: undefined reference to `pcap_set_datalink'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_immediate_mode':

../.go/src/github.com/google/gopacket/pcap/pcap.go:495: undefined reference to `pcap_set_immediate_mode'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_promisc':

../.go/src/github.com/google/gopacket/pcap/pcap.go:511: undefined reference to `pcap_set_promisc'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_rfmon':

../.go/src/github.com/google/gopacket/pcap/pcap.go:527: undefined reference to `pcap_set_rfmon'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_snaplen':

../.go/src/github.com/google/gopacket/pcap/pcap.go:543: undefined reference to `pcap_set_snaplen'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_timeout':

../.go/src/github.com/google/gopacket/pcap/pcap.go:559: undefined reference to `pcap_set_timeout'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_set_tstamp_type':

../.go/src/github.com/google/gopacket/pcap/pcap.go:575: undefined reference to `pcap_set_tstamp_type'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_setdirection':

../.go/src/github.com/google/gopacket/pcap/pcap.go:591: undefined reference to `pcap_setdirection'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_setfilter':

../.go/src/github.com/google/gopacket/pcap/pcap.go:606: undefined reference to `pcap_setfilter'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_stats':

../.go/src/github.com/google/gopacket/pcap/pcap.go:621: undefined reference to `pcap_stats'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_statustostr':

../.go/src/github.com/google/gopacket/pcap/pcap.go:635: undefined reference to `pcap_statustostr'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_tstamp_type_name_to_val':

../.go/src/github.com/google/gopacket/pcap/pcap.go:649: undefined reference to `pcap_tstamp_type_name_to_val'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_tstamp_type_val_to_name':

../.go/src/github.com/google/gopacket/pcap/pcap.go:663: undefined reference to `pcap_tstamp_type_val_to_name'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_close':

../.go/src/github.com/google/gopacket/pcap/pcap.go:171: undefined reference to `pcap_close'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_free_datalinks':

../.go/src/github.com/google/gopacket/pcap/pcap.go:269: undefined reference to `pcap_free_datalinks'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_free_tstamp_types':

../.go/src/github.com/google/gopacket/pcap/pcap.go:278: undefined reference to `pcap_free_tstamp_types'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_freealldevs':

../.go/src/github.com/google/gopacket/pcap/pcap.go:287: undefined reference to `pcap_freealldevs'

/tmp/go-build827145488/github.com/google/gopacket/pcap/_obj/pcap.cgo2.o: In function `_cgo_f272dbb6ef58_Cfunc_pcap_freecode':

../.go/src/github.com/google/gopacket/pcap/pcap.go:296: undefined reference to `pcap_freecode'

collect2: error: ld returned 1 exit status


--> netbsd/arm error: exit status 2

Stderr: # runtime/cgo

gcc: error: unrecognized command line option '-marm'

Reply all
Reply to author
Forward
0 new messages