[klee-dev] Cannot compile Coreutils 6.10 inside KLEE Docker image

Dan Liew dan at su-root.co.uk
Fri Nov 11 10:34:30 GMT 2016


On 11 November 2016 at 08:41, Thuan Pham <thuanpv at comp.nus.edu.sg> wrote:
> FYI, the same issue happens while configuring Coreutils-6.11.
>
> On Fri, Nov 11, 2016 at 4:33 PM, Thuan Pham <thuanpv at comp.nus.edu.sg> wrote:
>>
>> Dear all,
>> I am trying to reproduce results of KLEE OSDI'08 paper on the Docker image
>> provided on KLEE website. I downloaded Coreutils 6.10 and followed the
>> tutorial at https://klee.github.io/tutorials/testing-coreutils/. However, I
>> got an error when I run configure. It looks quite strange.
>>
>> ....
>> config.status: executing po-directories commands
>> config.status: creating po/POTFILES
>> config.status: creating po/Makefile
>> rm: cannot remove
>> 'confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/confdir3/..................':
>> File name too long
>>

Using the latest docker image built three days ago I cannot reproduce the issue.

```
docker run --rm -ti klee/klee
wget http://ftp.gnu.org/gnu/coreutils/coreutils-6.11.tar.gz
tar -xvf coreutils-6.11.tar.gz
cd coreutils-6.11
mkdir obj-llvm
../configure --disable-nls CFLAGS="-g"
```

The configure succeeds for me. This issue has been asked before [1].
The issue appears to be underlying storage driver you are using (aufs)
[2].
It has a rather low limit for the path length apparently.

I suggest you try one of the following.

* Mount a directory on your host into the container (i.e. a volume
mount, e.g. `docker run --rm -ti -v
/path/on/host:/home/klee/coreutils/`) and then
  build coreutils in there. This will bypass aufs and should avoid the issue.

* Change storage driver (see [3]). I use overlay2. Note if you switch
Docker storage driver you will need to nuke your
`/var/lib/docker` directory. I advise not nuking it yourself and
instead using this script [4] to do it.


[1] https://www.mail-archive.com/klee-dev@imperial.ac.uk/msg01987.html
[2] https://github.com/docker/docker/issues/1413
[3] https://docs.docker.com/engine/userguide/storagedriver/selectadriver/
[4] https://github.com/docker/docker/blob/master/contrib/nuke-graph-directory.sh



More information about the klee-dev mailing list