Broken symlinks in lndir build tree
I routinely create separate build trees using lndir (per wiki:WorkingConventions/Git#Creatingabuildtreewithlndir). However it seems this is currently broken by the code to copy fs.{c,h} to various places in ./configure (see D4416):
$ mkdir ghc-validate
$ cd ghc-validate
$ lndir ../ghc
$ ln -s ../ghc/.git
$ ./boot
[...]
$ ./configure
[...]
$ find . -name "fs.*" | xargs file
./rts/fs.c: broken symbolic link to ../../../ghc/utils/fs/fs.c
./rts/fs.h: broken symbolic link to ../../../ghc/utils/fs/fs.h
./utils/fs/fs.c: symbolic link to ../../../ghc/utils/fs/fs.c
./utils/fs/fs.h: symbolic link to ../../../ghc/utils/fs/fs.h
./utils/unlit/fs.c: symbolic link to ../../../ghc/utils/fs/fs.c
./utils/unlit/fs.h: symbolic link to ../../../ghc/utils/fs/fs.h
./utils/lndir/fs.c: symbolic link to ../../../ghc/utils/fs/fs.c
./utils/lndir/fs.h: symbolic link to ../../../ghc/utils/fs/fs.h
./libraries/base/include/fs.h: broken symbolic link to ../../../ghc/utils/fs/fs.h
./libraries/base/cbits/fs.c: broken symbolic link to ../../../ghc/utils/fs/fs.c
This can be fixed by manually correcting the symlinks, but it is a bit of pain, especially for ./validate.
ln -fs ../../ghc/utils/fs/fs.c rts/fs.c
ln -fs ../../ghc/utils/fs/fs.h rts/fs.h
ln -fs ../../../../ghc/utils/fs/fs.c libraries/base/include/fs.c
ln -fs ../../../../ghc/utils/fs/fs.h libraries/base/include/fs.h
ln -fs ../../../../ghc/utils/fs/fs.c libraries/base/cbits/fs.c
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.5 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Build System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |