James Lee wrote:
> It's not correct as no CSW libs are opened.
>
It's not a "problem" but if it's the result of the build system it
suggests we are generally making settings with no thought. The
current batch of odd RPATHs only causes the link loader to look for
a directory that doesn't exist, but this is less wasted effort than
what happens with $ISALIST which typically looks at all the 64 bit
locations before finding that matching 32 lib.
$ISALIST doesn't just expand to 64bit, you have optimized 32bit versions
(sparcv8plus, sparcv8plus+vis...) as well?
I take it that you haven't built any packages using gar yet?
The recent batch of odd paths was due to problems with gar where
LD_OPTIONS somehow got messed up (there have been a number of postings
about this problem).
Even though I've only been a maintainer for a few months, my
understanding (from http://opencsw.org/standards/pkg-walkthrough as an
example) was that LD_OPTIONS was a preferred setting when building
packages. So all packages I've built (either using gar or manually) have
LD_OPTIONS set which means RPATH/RUNPATH have been set to
/opt/csw/lib/$ISALIST:/opt/csw/lib whatever they need.
If LD_OPTIONS shouldn't be used, or should only contain what's needed
for a particular package, it should be communicated more clearly.
How difficult is it to do right? Perhaps the recent batch of odd
paths are telling me that people are using a "sausage machine"
approach to building (throw anything in the top and just wind the
handle). We are dangerously close to the "I'd like to do the right
thing but the build system won't let me". The value CSW should add
*is* to take the time to get things right - your individual effort
shared for the benefit of many.
Right now, as far as I can see it, gar lets you set LD_OPTIONS to
anything you want, but if you don't set it, gar will set it for you.
To reiterate my question:
Is there any actual harm (disregarding the fact that the link loader
might have to traverse /opt/csw/lib/$ISALIST:/opt/csw/lib without
finding any match) having RPATH/RUNPATH set?
If not, it is only when a package doesn't use any libs at all from
/opt/csw/lib, when RPATH/RUNPATH should be changed from the default.
If package A is linked to a lib i package B (both CSW packages) and A i
packaged with RPATH/RUNPATH set to only /opt/csw/lib, any future
releases of B which contain optimized libraries won't be used until A is
repackaged with RPATH/RUNPATH set to /opt/csw/lib/$ISALIST:/opt/csw/lib
And if there is a longer dependency list (A->B->C-D where D is the one
with optimized libs) it creates much more work for the maintainer of A
(he must check every lib in the dependency path to see if there are any
optimized libs).
But then again, if there is no harm in having RPATH/RUNPATH set and it
only creates much more work for the maintainers, why shouldn't we leave
it as it is?
_______________________________________________
maintainers mailing list
[email protected]
https://lists.opencsw.org/mailman/listinfo/maintainers