Only canonicalize executable path if it has relative directories
Only canonicalize executable path if it has relative directories

Otherwise symbolic links may also accidentally be resolved which may
lead to unexpected results in the case of 'coreutils', a binary
that depends on the executable name being a symbolic link.

This means a path like /bin/echo being canonicalized to /bin/coreutils
will loose all information about the desired functionality.

Test failures will occur if 'echo' is resolved that way and it's
not trivial to find the cause of it in the provided error messages.

rust-lang/cargo,rust-lang/cargo,eminence/cargo,nipunn1313/cargo,rust-lang/cargo,rustyhorde/cargo,nipunn1313/cargo,nipunn1313/cargo,eminence/cargo,nipunn1313/cargo,eminence/cargo,rustyhorde/cargo,rustyhorde/cargo,eminence/cargo,rust-lang/cargo,rustyhorde/cargo