I've run into a weird issue when installing SWI-Prolog using homebrew on my OSX 10.9 box. I'm trying to debug it to figure out whose bug it is (SWI-Prolog's, homebrew's, or OSX's), so I can report it appropriately and get it fixed.
The swipl
in my path is /usr/local/bin/swipl
which symlinks to /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
which symlinks to /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
.
% which swipl
/usr/local/bin/swipl
% find /usr/local -name swipl -exec ls -l {} \;
lrwxr-xr-x 1 rampion admin 36 Oct 23 20:54 /usr/local/bin/swipl -> ../Cellar/swi-prolog/6.2.3/bin/swipl
lrwxr-xr-x 1 rampion admin 48 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl -> ../lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
-r-xr-xr-x 1 rampion admin 8760 Oct 23 20:54 /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
I can run the actual executable in /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
:
% /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
And I can use the symlink at /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
:
% /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
But when I try to use the symlink at /usr/local/bin/swipl
, which just symlinks
to the other symlink, I get an error:
% /usr/local/bin/swipl
Abort trap: 6
% echo $?
134
I can also make my own symlinks to /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl
, and they work:
% ln -s /usr/local/Cellar/swi-prolog/6.2.3/lib/swipl-6.2.3/bin/x86_64-darwin13.0.0/swipl swipl.0
% ./swipl.0
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.2.3)
...
And my own symlinks to /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl
, and they fail:
% ln -s /usr/local/Cellar/swi-prolog/6.2.3/bin/swipl swipl.1
% ./swipl.1
Abort trap: 6
% echo $?
134
So I have no idea what's going wrong. Why would a symlink to a file work, but a symlink to a symlink to a file fail?