[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 14:07:05 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Hi Jim,
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.
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