Skip to content

Instantly share code, notes, and snippets.

@vbatts
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vbatts/d4519a7063367de032b7 to your computer and use it in GitHub Desktop.
Save vbatts/d4519a7063367de032b7 to your computer and use it in GitHub Desktop.

overview

https://bugzilla.redhat.com/show_bug.cgi?id=1087621

When running the ./misc/cgo/test of go test -ldflags -linkmode=internal, on glibc-2.19.90-12.fc21.i686, inside of build chroot, the test fails with

# testmain
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_goCallback
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_goFoo
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_goStackCheck
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_Add
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_ReturnIntLong
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_BackIntoGo
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_BackgroundSleep
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportbyte
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportbool
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportrune
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exporterror
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportint
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportuint
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportuintptr
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportint8
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportuint8
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportint16
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportuint16
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportint32
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportuint32
_/go/misc/cgo/test(.text): unexpected GOT reloc for non-dynamic symbol _cgoexp_9a470ea86cc6_exportint64
too many errors
FAIL    _/go/misc/cgo/test [build failed]

Which appears to only be in a darwin branch of the logic.

FROM fedora:rawhide
RUN yum install -y mock && yum clean all
RUN curl -o go1.2.1.linux-386.tar.gz https://go.googlecode.com/files/go1.2.1.linux-386.tar.gz
RUN useradd -m -u 1000 -G wheel,mock build
RUN sed -ri 's/^(%wheel.*)(ALL)$/\1NOPASSWD: \2/' /etc/sudoers
USER build
#!/bin/sh
cat Dockerfile | docker build -t g -
## done this way, since the `docker build` does not have a --privileged flag, and mock needs capabilities
docker run -it --privileged g sudo su - build -c "mock -r fedora-devel-i386 --arch=i686 --init"
docker commit $(docker ps -q -l) g
docker run -it --privileged g sudo su - build -c "mock -r fedora-devel-i386 --arch=i686 --copyin /go1.2.1.linux-386.tar.gz /"
docker commit $(docker ps -q -l) g
docker run -it --privileged g sudo su - build -c "mock -r fedora-devel-i386 --arch=i686 --shell tar xf /go1.2.1.linux-386.tar.gz"
docker commit $(docker ps -q -l) g
# this is the failing test
docker run -it --privileged g sudo su - build -c 'mock -r fedora-devel-i386 --arch=i686 --shell "cd /go/misc/cgo/test && GOROOT=/go PATH=/go/bin:$PATH go test -ldflags -linkmode=internal"'
docker commit $(docker ps -q -l) g
# give a shell to run
docker run -it --privileged g sudo su - build -c "mock -r fedora-devel-i386 --arch=i686 --shell 'cd go/misc/cgo/test && bash'"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment