I have a web application that uses the library
github.com/mattn/go-sqlite3
and I build using the command
env GOOS=darwin GOARCH=amd64 go build -ldflags "-s" $GOPATHsrc/github.com/user/example/main.go
I am building it in OSX El Capitan 10.11.5. When I run the executable on osx 10.8 and above it works correctly but fails on 10.7 and below with the error message "Illegal Instruction". If I remove the go-sqlite3 library it works correctly on 10.6 and 10.7.
Any help on what is going on here and how to fix this for 10.6 and 10.7?
I found this regarding sqlite3 using the -x option when compiling env CGO_CFLAGS="-mmacosx-version-min=10.6" GOOS=darwin GOARCH=amd64 go build -x -ldflags "-s" $GOPATHsrc/github.com/user/example/main.go
:
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common -o $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_.o $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_main.o $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_export.o $WORK/github.com/mattn/go-sqlite3/_obj/backup.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/callback.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/error.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_load_extension.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_other.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3-binding.o -g -O2
/usr/local/Cellar/go/1.6.2/libexec/pkg/tool/darwin_amd64/cgo -objdir $WORK/github.com/mattn/go-sqlite3/_obj/ -dynpackage sqlite3 -dynimport $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_.o -dynout $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_import.go
clang -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common -o $WORK/github.com/mattn/go-sqlite3/_obj/_all.o $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_export.o $WORK/github.com/mattn/go-sqlite3/_obj/backup.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/callback.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/error.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_load_extension.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_other.cgo2.o $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3-binding.o -g -O2 -Wl,-r -nostdlib
/usr/local/Cellar/go/1.6.2/libexec/pkg/tool/darwin_amd64/compile -o $WORK/github.com/mattn/go-sqlite3.a -trimpath $WORK -p github.com/mattn/go-sqlite3 -buildid 32b9303c80e2bd23ae9dab9f38370b654df12034 -D _/Users/javier/projects/go/src/github.com/mattn/go-sqlite3 -I $WORK -pack ./doc.go $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_gotypes.go $WORK/github.com/mattn/go-sqlite3/_obj/backup.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/callback.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/error.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_load_extension.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/sqlite3_other.cgo1.go $WORK/github.com/mattn/go-sqlite3/_obj/_cgo_import.go
pack r $WORK/github.com/mattn/go-sqlite3.a $WORK/github.com/mattn/go-sqlite3/_obj/_all.o # internal