Hi.
My ‘downstream’ have a situation in which they make use of a directory outside
of the configured GCC installation - and symlink from there to libraries in the
actual install tree.
e.g.
/foo/bar/lib:
libgfortran.dylib -> /gcc/install/path/lib/libgfortran.dylib
Now I want to find a way for them to add an embedded runpath that references
/foo/bar/lib.
I could add a configure option, that does exactly this job - but then I’d have
to back port that to every GCC version they are still supporting (not, perhaps,
the end of the world but much better avoided).
So I was looking at using —with-specs= to add a link-time spec for this:
--with-specs='%{!nodefaultrpaths:%{!r:%:version-compare(>= 10.5
mmacosx_version_min= -Wl,-rpath,/foo/bar/lib)}}}’
Which works, fine except for PCH jobs which it breaks because the presence of
an option claimed by the linker causes a link job to be created, even though
one is not required (similar issue have been seen before).
There is this:
%{,S:X} substitutes X, if processing a file which will use spec S.
so I could then do:
--with-specs=‘%{,???:%{!nodefaultrpaths:%{!r:%:version-compare(>= 10.5
mmacosx_version_min= -Wl,-rpath,/foo/bar/lib)}}}}’
but, unfortunately, I cannot seem to figure out what ??? should be [I tried
‘l’ (link_spec) ‘link_command’ (*link_command)]
…JFTR also tried
%{!.h:
%{!,c-header:
——
any insight would be welcome, usually I muddle through with specs, but this one
has me stumped.
thanks
Iain