gdc on macOS seems to confuse RPATH variable

"Louis Wust" <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <[email protected]>
Greetings,

I am a macOS and Homebrew user. Recently I needed to install svn /
subversion using homebrew, but ran into problems similar to the one
described here:

  https://github.com/Homebrew/homebrew-core/issues/93294

  /usr/bin/clang -o libserf-1.1.3.0.dylib .......
  [...]
  ld: unknown option: -rpath=/usr/local/Cellar/subversion/1.14.1_4/libexec/serf/lib
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

I was able to get past the error by temporarily removing the
/usr/local/bin/gdc symlink, which pointed to the D language compiler
provided by the gcc homebrew recipe.

Upon further inspection, I believe that some of the scons construction
variables are unexpectedly referenced from the SCons.Tool.gdc class,
despite the build ultimately using the system clang/ld (applelink)
toolchain. Consider the following output with gcc not installed via
Homebrew:

  % which gdc
  gdc not found
  % cat SConstruct
  env = Environment()
  print(env.Dump())
  % scons | grep -E "RPATH.*:"
    'DRPATHPREFIX': '-L-rpath,',
    'DRPATHSUFFIX': '',
    '_DRPATH': '${_concat(DRPATHPREFIX, RPATH, DRPATHSUFFIX, __env__)}',
    '__DRPATH': '$_DRPATH',
    '__RPATH': '$_RPATH',
  %

And then the same commands, this time after running "brew install gcc" :

  % which gdc
  /usr/local/bin/gdc
  % cat SConstruct
  env = Environment()
  print(env.Dump())
  % scons | grep -E "RPATH.*:"
    'RPATHPREFIX': '-Wl,-rpath=',
    'RPATHSUFFIX': '',
    '_RPATH': '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}',
    '__DRPATH': '$_DRPATH',
    '__RPATH': '$_RPATH',
  %

Note how the RPATHSUFFIX changes to include an option format that
applelink / ld does not support.

Does this seem like a bug, that I should file on GitHub? What additional
information should I provide if so?

Thanks,
Louis
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.