---------- Forwarded message ----------
From: Jack Howarth <howarth.at.f...@gmail.com>
Date: Tue, Oct 28, 2014 at 9:38 PM
Subject: Re: [Fink-devel] validation test for Puma-linked shared libraries
on darwin14 and later
To: Alexander Hansen <alexanderk.han...@gmail.com>


As I mentioned to Alexander on fink irc, it appears that we can use...

# /Library/Developer/CommandLineTools/usr/bin/dyldinfo -bind
.libs/libgdbm.3.0.0.dylib

bind information:

segment section          address        type    addend dylib
symbol

__DATA  __got            0x00004000    pointer      0 libSystem
___stack_chk_guard

__DATA  __nl_symbol_ptr  0x00004008    pointer      0 libSystem
dyld_stub_binder

vs

# /Library/Developer/CommandLineTools/usr/bin/dyldinfo -bind
.libs/libgdbm.3.0.0.dylib | grep flat

__DATA  __got            0x00004000    pointer      0 flat-namespace
___stack_chk_guard

__DATA  __got            0x00004008    pointer      0 flat-namespace
_gdbm_errno

__DATA  __nl_symbol_ptr  0x00004010    pointer      0 flat-namespace
dyld_stub_binder

and just grep the output for flat-namespace.
              Jack

On Tue, Oct 28, 2014 at 9:14 PM, Alexander Hansen <
alexanderk.han...@gmail.com> wrote:

> On 10/28/14, 6:05 PM, Jack Howarth wrote:
>
>>       As I mentioned to Alexander on fink irc, I think we can add a
>> fatal fink validation error for the dynamic shared libraries on darwin14
>> and later that are erroneously linked with -flat_namespace rather than
>> -undefined dynamic_lookup due to the buggy libtool. We can use the
>> following approach...
>>
>> 1) test with the 'file' command to make sure the shared library isn't
>> really a bundle
>> 2) if not a bundle, use 'otool -H <filename> | grep Hint' to look for...
>>
>> Two-level namespace hints table (0 hints)
>>
>>
>> which shared libraries created with -flat_namespace should be missing.
>>
>>
>> If this test fails on darwin14 or later, this should be treated as a
>> fatal validation error with the appropriate error message.
>>
>>                 Jack
>>
>>
>>
>>
> The good news is that Validation.pm already has a loop over the installed
> dylibs in a .deb, excluding bundles, so adding an extra test won't be too
> difficult.
>
> The bad news is that my test case (libtcd-shlibs on 10.10 with and without
> the PatchScript) didn't seem to give different "otool -H " output whether
> or not -flat_namespace was used.
> --
> Alexander Hansen, Ph.D.
> Fink User Liaison
> My package updates: http://finkakh.wordpress.com/
>
------------------------------------------------------------------------------
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
http://news.gmane.org/gmane.os.apple.fink.devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to