rpath argument change in GCC / LD?

Michael Dickens michaelld at macports.org
Mon Feb 4 03:13:18 UTC 2019


I'm trying to update NumPy to 1.61.1, with some success ... but have come up with something odd with respect to the distutils/fcompiler/gnu.py provided within NumPy: the "rpath" setting that I fixed a little over 2 years ago has reared its ugly head!

The original code at the time was (NumPy 1.11.2):
{{{
-Wl,-rpath="DIR"
}}}
where DIR is the rpath directory (unquoted). These flags are being appended to the Fortran build command for linking libraries (technically .so objects).

With some trial and error testing, my change back ~2 years ago fixed this to instead be:
{{{
-Wl,-rpath -Wl"DIR"
}}}

The original code is now as of NumPy 1.16.1:
{{{
-Wl,-rpath,DIR
}}}
... note the "," separator and unquoted DIR.

Up until some recent time, my fix worked. Then ... something changed, and the now-original code seems to work in my testing: installing NumPy then trying to build SciPy & changing this specific line of code between SciPy builds verifies the use of "-rpath,DIR" ... or, probably better would be '-rpath,"DIR"' in case the DIR has spaces in it.

Since these flags are being passed through to the linker (ld), I have to believe that what changed is the acceptable linker arguments for doing rpath.

I know there's been quite a bit of kerfuffle recently about ld64 and using xcode's versus MP's actual linker. Maybe this makes a difference? Does the rpath argument to the linker depend on which linker is being used? Does the linker used depend on the version of OSX? Can we select a single "-rpath" argument setting here to use so that it works with all linkers?

I'm hoping others can shed some light here so that I can get NumPy updated & properly working for all of the potential linkers we might now use. Thx! - MLD


More information about the macports-dev mailing list