Skip to content
  • Ömer Sinan Ağacan's avatar
    Linker: ignore empty paths in addEnvPaths · cacba075
    Ömer Sinan Ağacan authored
    Previously `splitEnv` worked like this:
    
        > splitEnv "foo:::bar::baz:"
        ["foo","","","bar","","baz",""]
    
    with this patch:
    
        > splitEnv working_dir "foo:::bar:baz:"
        ["foo",working_dir,working_dir"bar","baz",working_dir]
    
    This fixes #14695, where having a trailing `:` in the env variable
    caused ghci to pass empty `-B` parameter to `gcc`, which in turned
    caused the next parameter (`--print-file-name`) to be considered as the
    argument to `-B`. As a result ghci did not work.
    
    The `working_dir` argument is to have a similar behavior with POSIX:
    according to chapter 8.3 zero-length prefix means current working
    directory.
    
    Reviewers: hvr, bgamari, AndreasK, simonmar
    
    Reviewed By: bgamari, AndreasK, simonmar
    
    Subscribers: AndreasK, rwbarton, thomie, carter
    
    GHC Trac Issues: #14695
    
    Differential Revision: https://phabricator.haskell.org/D4330
    cacba075