Invalid PATH set for `-B` dirs when calling gcc to link
## Summary
When `-B` values are set in `-optl`, GHC constructs a seemingly invalid `PATH` from it, using `;` instead of `:` to prepend to the existing `PATH`.
## Steps to reproduce
On a system where all executables needed to run GHC are in `/bin`:
```
$ cat Main.hs
module Main where
main = return ()
$ PATH=/bin ghc -optl-B/var/tmp Main
[1 of 1] Compiling Main ( Main.hs, Main.o )
Linking Main ...
collect2: fatal error: cannot find 'ld'
compilation terminated.
```
(`strace` shows `PATH="/var/tmp";/bin` being set in the environment).
## Expected behavior
Link sample program successfully.
## Environment
* GHC version used: 7.6.3 and 8.4.4
Optional:
* Operating System: linux
* System Architecture: x86_64
issue