[Mesa-dev] [PATCH] build: remove script compatibility symlinks

Kenneth Graunke kenneth at whitecape.org
Thu Jun 20 20:32:03 PDT 2013


On 06/20/2013 06:45 PM, Jonathan Gray wrote:
> On Thu, Jun 20, 2013 at 04:00:04PM -0600, Brian Paul wrote:
>> On 06/20/2013 03:32 PM, Dave Airlie wrote:
>>> On Fri, Jun 21, 2013 at 2:28 AM, Jonathan Gray <jsg at jsg.id.au> wrote:
>>>> The symlinks for compatibility with old scripts assumes
>>>> sysv shared library versioning and breaks other systems.
>>>>
>>>> For example OpenBSD uses sunos 4 style .so.major.minor
>>>> versioning so the targets with ln will fail.
>>>>
>>>> Fixes bug 63269.
>>>>
>>>
>>> totally nak.
>>
>> Yeah, I don't want to loose this feature either.
>>
>>
>>> My fix you mean avoids?
>>>
>>> A lot of developers use this feature, I do wonder if maybe we can move
>>> it behind a configure switch though as I think it also causes some
>>> rpaths to be emitted that I think distro packages would like to avoid.
>>
>> We could certainly be smarter about whether to make the links or how
>> they're made.  I'd rather pursue that.
>
> Perhaps it is enough to glob the ln calls so the .patch part
> is never explicitly referenced.  The additional symlinks to
> the library won't always make sense on non linux systems but
> at least mesa would actually build again then.

We could almost do:

for lib in .libs/foo.so*; do ln -f $lib 
$(top_builddir)/$(LIB_DIR)/`basename $lib`; done

This would create hardlinks for every library that actually got built. 
Unfortunately, I think it means that the symlinks will point to the 
original .libs/foo.so.1.0.0 file, which means that you can't just copy 
'lib' around anymore.  Hm.

Alternatively, what about simply having 'make' run 'make 
DESTDIR=$(top_builddir)/$(LIB_DIR) install' or the like?  I guess that 
would put libraries in mesa/lib/<prefix>/<libdir> and DRI drivers in 
mesa/lib/<prefix>/<libdir>/dri, which is a little annoying.  And does 
rpath nonsense...

--Ken


More information about the mesa-dev mailing list