[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