On 09/10/2014 03:42 PM, Pádraig Brady wrote: > On 09/10/2014 11:06 AM, Pádraig Brady wrote: >> * src/local.mk (transform): Skip the transformation for libstdbuf >> since that should not be subject to name clashes, and we need >> to reference the name directly in LD_PRELOAD etc. >> Issue reported at https://trac.macports.org/ticket/44922 >> --- >> src/local.mk | 9 ++++++++- >> 1 files changed, 8 insertions(+), 1 deletions(-) >> >> diff --git a/src/local.mk b/src/local.mk >> index c0d04d6..4ca67ff 100644 >> --- a/src/local.mk >> +++ b/src/local.mk >> @@ -340,7 +340,14 @@ copy_sources = \ >> # confusion with the 'install' target. The install rule transforms >> 'ginstall' >> # to install before applying any user-specified name transformations. >> >> -transform = s/ginstall/install/; $(program_transform_name) >> +# Don't apply prefix transformations to libstdbuf shared lib >> +# as that's not generally needed, and we need to reference the >> +# name directly in LD_PRELOAD etc. In general it's surprising >> +# that $(transform) is applied to libexec at all given that is >> +# for internal package naming, not privy to $(transform). >> + >> +transform = s/ginstall/install/; /libstdbuf/!$(program_transform_name) > > Nick Bowler suggested the following more robust solution: > > transform = /libstdbuf/q;s/ginstall/install/;$(program_transform_name) > > Now pushed.
Though in retrospect less appropriate for this case, as the Makefile uses $(transform) like: sed ....s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' so we don't want transform to break out early and mess up its other implicit transformations. Original now pushed instead. thanks, Pádraig.
