chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-hackers] [PATCH] Only generate a versioned .so if USES_SONA


From: Mario Domenech Goulart
Subject: Re: [Chicken-hackers] [PATCH] Only generate a versioned .so if USES_SONAME
Date: Thu, 18 Jul 2013 23:28:19 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

On Thu, 18 Jul 2013 14:07:05 +0000 Mario Domenech Goulart <address@hidden> 
wrote:

> On Tue, 16 Jul 2013 17:10:06 -0500 Jim Ursetto <address@hidden> wrote:
>
>> I think this fixes the problem -- it works on OS X and Linux at least.  It 
>> needs testing on
>>
>> 1) solaris
>> 2) cross-compile (mario/christian?)
>
> I've tried cross-compiling 4.8.0.3 with the following patches:
>
> Do not apply PROGRAM_PREFIX and PROGRAM_SUFFIX to include directory
>     f7c3c7191bd052685f655dc4c5cef0e0920eb4ab
>
> Drop SONAME_VERSION, use BINARYVERSION instead
>     53128c23a114af030af3d47ea50c59cf42ff6ce4
>
> Only generate a versioned .so if USES_SONAME
>     3dd758b36eb790578481f1ae8522911b41288aac
>
> Patches were applied in that order.  It seems to work fine.  However, I
> just cross-compiled from x86_64 -> x86.  I haven't tried cross-compiling
> to a completely incompatible architecture.

Thanks, Jim.  I've pushed your patch.

Best wishes.
Mario


>> On Jul 16, 2013, at 12:06 AM, Jim Ursetto <address@hidden> wrote:
>>
>>> Hi,
>>> 
>>> This patch turned out to break the OS X build.  It removes the need
>>> to set SONAME_VERSION when calling the install-bin target, and
>>> therefore implicitly sets SONAME_VERSION to .$BINARYVERSION.
>>> Unfortunately, some platforms such as OS X didn't use an
>>> SONAME_VERSION at all.  It worked before because the SONAME_VERSION
>>> setting code was never reached on OS X, being conditional upon
>>> NEEDS_RELINKING, whatever that does.  Now, however, the version
>>> number is always set.
>>> 
>>> The upshot is it installs libchicken.dylib.7 (which is probably an
>>> illegal/nonstandard name), but does *not* make a symlink from
>>> libchicken.dylib to it, as USES_SONAME is not set.  It is possible
>>> to work around this problem with a manual symlink.
>>> 
>>> My thought was to make the install of the versioned library
>>> conditional upon USES_SONAME as well, so OS X would go back to plain
>>> libchicken.dylib.  However, for whatever reason, Solaris sets
>>> NEEDS_RELINKING *without* USES_SONAME, which would probably break
>>> with this solution.
>>> 
>>> Therefore I'm not sure yet how to fix this correctly.  I think the
>>> logic is rickety and patching it just changed the failure case
>>> around.
>>> 
>>> The ticket for this issue is http://bugs.call-cc.org/ticket/1022
>>> 
>>> Jim
>>> 
>>> On Feb 11, 2013, at 10:20 AM, Mario Domenech Goulart <address@hidden> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> On Sun, 10 Feb 2013 19:29:18 +0100 (CET) Felix <address@hidden> wrote:
>>>> 
>>>>>> I'm not sure about the right fix for this issue.  Can't we just get rid
>>>>>> of SONAME_VERSION and use BYNARYVERSION instead?
>>>>> 
>>>>> Sounds right to me.
>>>> 
>>>> Attached is a patch that does that.  I've tested it for the mips
>>>> cross-compilation case using "libs install-dev" as target and a regular
>>>> installation (no cross-compilation) on linux/x86.  Both seem to work as
>>>> expected.
>>>> 
>>>> 
>>>>>> Meanwhile, how about changing the manual (Cross development chapter) to
>>>>>> instruct users to use the "install" target instead of "libs
>>>>>> install-dev".  It'll probably install unnecessary things, but won't
>>>>>> break anything, as far as I can see.  With the current instructions, the
>>>>>> target installation ends up with a libchicken that is a dangling link.
>>>>> 
>>>>> Good point. Would you want to do this? Otherwise, create a ticket and
>>>>> assign it to me, please.
>>>> 
>>>> I've updated the wiki docs to suggest "install" instead of "libs
>>>> install-dev" (and the expected generated tree).
>>>> 
>>>> Notice that this wiki change doesn't need to be merged into git's manual
>>>> if we fix the build system (I know it'll be hard to remember, but I just
>>>> thought it should be mentioned anyway).  It's just a workaround to match
>>>> the current chicken's build system behavior.
>>>> 
>>>> Best wishes.
>>>> Mario
>>>> -- 
>>>> http://parenteses.org/mario
>>>> <0001-Drop-SONAME_VERSION-use-.-BINARYVERSION-instead.patch>_______________________________________________
>>>> Chicken-hackers mailing list
>>>> address@hidden
>>>> https://lists.nongnu.org/mailman/listinfo/chicken-hackers
>>> 
>>
>> _______________________________________________
>> Chicken-hackers mailing list
>> address@hidden
>> https://lists.nongnu.org/mailman/listinfo/chicken-hackers

-- 
http://parenteses.org/mario



reply via email to

[Prev in Thread] Current Thread [Next in Thread]