On 30 October 2018 at 12:50, Peter Maydell <peter.mayd...@linaro.org> wrote: > This patchset fixes a problem with our build infrastructure > that meant that MST's recent 'pci, pc, virtio' pullreq failed > tests. > > Currently our configure script has a wildcard loop that creates > symlinks for every data file in tests/acpi-test-data from the > source tree to the build tree. However, if a new data file is > added in git, there is nothing that causes configure to be rerun, > and so it is not available in the build tree, which can cause > test failures. > > The core of the change here is that instead of linking every > individual data file, we just symlink the directory itself (which > we do in patch 2 for this and also tests/hex-loader-check-data). > The rest of the patchset deals with: > * renaming a shell variable to make it clearer that it's OK > to put directories to symlink in it, not just files > * adding a comment about why wildcarding is a bad idea > * cleaning up a couple of places that did their own symlinking > when they could have just used the existing code > > We do still use wildcarding to construct a list of files in > pc-bios to be symlinked; we get away with this because we don't > in practice add new BIOS images often and if we do there's also > usually a change that means configure is rerun anyway. We can't > just symlink all of pc-bios into the build tree because it > contains other things than just generated binaries. There's > scope for fixing this, I think, but I wanted to get this fix out.
...having sent this out and moved on to something else, I have discovered a problem with it. If you configure a build tree using this, and then switch back to a git branch which has the older configure, then that configure will end up trashing all the tests/acpi-test-data and tests/hex-loader-check-data files in the source tree by replacing them with symlinks to themselves... This is fixable by doing "git checkout tests" but it's a bit of a landmine for bisection :-( thanks -- PMM