Since the update to Debian Stretch, this test fails. The reason is dynamic
binary, which requires i386 ld.so for loading (and apparently it is no longer
installed by default):
> root@09d4b173c3dc:/go/src/github.com/docker/docker# file exit32-test
> exit32-test: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=a0d3d6cb59788453b983f65f8dc6ac52920147b6, stripped
> root@09d4b173c3dc:/go/src/github.com/docker/docker# ls -l /lib/ld-linux.so.2
> ls: cannot access '/lib/ld-linux.so.2': No such file or directory
To fix, just add -static.
Interestingly, ldd can'f figure it out.
> root@a324f8edfcaa:/go/src/github.com/docker/docker# ldd exit32-test
> not a dynamic executable
Other tools (e.g. objdump) also show it's a dynamic binary.
While at it, remove the extra "id" argument (a copy-paste error I
guess).
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
| ... | ... |
@@ -1060,7 +1060,7 @@ func (s *DockerSuite) TestRunSeccompProfileAllow32Bit(c *check.C) {
|
| 1060 | 1060 |
testRequires(c, SameHostDaemon, seccompEnabled, IsAmd64) |
| 1061 | 1061 |
ensureSyscallTest(c) |
| 1062 | 1062 |
|
| 1063 |
- icmd.RunCommand(dockerBinary, "run", "syscall-test", "exit32-test", "id").Assert(c, icmd.Success) |
|
| 1063 |
+ icmd.RunCommand(dockerBinary, "run", "syscall-test", "exit32-test").Assert(c, icmd.Success) |
|
| 1064 | 1064 |
} |
| 1065 | 1065 |
|
| 1066 | 1066 |
// TestRunSeccompAllowSetrlimit checks that 'docker run debian:jessie ulimit -v 1048510' succeeds. |
| ... | ... |
@@ -57,7 +57,7 @@ func ensureSyscallTest(c *check.C) {
|
| 57 | 57 |
} |
| 58 | 58 |
|
| 59 | 59 |
if runtime.GOOS == "linux" && runtime.GOARCH == "amd64" {
|
| 60 |
- out, err := exec.Command(gcc, "-s", "-m32", "-nostdlib", "../contrib/syscall-test/exit32.s", "-o", tmp+"/"+"exit32-test").CombinedOutput() |
|
| 60 |
+ out, err := exec.Command(gcc, "-s", "-m32", "-nostdlib", "-static", "../contrib/syscall-test/exit32.s", "-o", tmp+"/"+"exit32-test").CombinedOutput() |
|
| 61 | 61 |
c.Assert(err, checker.IsNil, check.Commentf(string(out))) |
| 62 | 62 |
} |
| 63 | 63 |
|