[m-rev.] For review: Fix Darwin shared libs on source distribution
Ian MacLarty
maclarty at cs.mu.OZ.AU
Sun Oct 31 13:01:36 AEDT 2004
On 31 Oct 2004, at 03:00, Julien Fischer wrote:
>> Maybe a better solution is to disable the new mmc options altogether
>> and just pass the -install_name option manually in all the relevant
>> Mmakefiles which would avoid the problem with it getting passed twice
>> if the source distribution were generated and compiled on a Mac OS X
>> system.
>>
> Breaking everything else in order to support (a currently non-existant)
> OS X configured source distribution seems pointless.
>
What I'm suggesting doesn't break anything. All I'm saying is we just
pass the -install_name option to .dylib targets in the Mmakefiles.
This way a build from the c source or the mercury source should work
the same way.
> The install_name options should be set manually when:
> i) We're building from a source distribution
> ii) The source distribution was not configured on powerpc*apple*darwin*
>
> It should be possible to have configure work out whether (ii) is
> true or not by looking at one of the .c files.
>
It seems a hell of a lot simpler to just pass the -install_name option
in the Mmakefiles to .dylib targets.
> Alternatively we could just go back to static linking for source
> distributions at the moment
>
>> If a user wanted to build a shared lib on Darwin the new mmc options
>> would still be passed - we just disable them for the Mercury build.
>> Alternatively maybe the new mmc options should be removed altogether
>> (since they result in non-portable .dep files) and replaced with some
>> comments in the user guide about how to set up a Mmakefile to build
>> shared libs on Mac OS X.
>>
>> Any thoughts?
>>
> I don't like the idea of removing support for the new compiler options.
> As far as possible I'd like the way of building shared libaries to
> differ
> as little as possible for each platform.
I agree with you. But I think as far as the build process for the
Mercury compiler goes the new options should be disabled and the
-install_name should be passed manually to .dylib targets. This is way
simpler than having different cases for (i) a c source distribution
generated on Darwin, (ii) a c source distribution generated on another
platform and (iii) the Mercury source. In my experience simpler is
normally better. And we're not breaking anything by doing this as far
as I can see.
Ian.
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list