crypto and ssl modules under OSX

Sean Hinde <>
Fri Dec 3 13:59:40 CET 2004


On 3 Dec 2004, at 09:01, Bjorn Gustavsson wrote:

> Sean Hinde <> writes:
>
>> Hi Bjorn,
>>
>> I hope your change gets rid of the undocumented -lbundle1.o and
>> reverts to using the mechanism in the README - namely -bundle, and
>> using the cc program to link rather than ld
>
> No, sorry.
>
> Our Makefiles must work on all platforms (including other Unixes,
> Windows, VxWorks and other embedded system). Currently, the Makefiles
> use the C compiler for compiling and ld for linking.
>
> Starting to use the C compiler for linking will probably not work
> for some platform, so that is not an option.
>
> The best way to solve the problem would of course be to choose whether 
> to use
> gcc or ld for linking on a platform-by-platform basis, but that would
> require changes to configure.in and many Makefiles in source code and 
> a lot of
> time for testing.

I don't understand this - there is already an explicit rule done in 
configure.in for darwin. You already have a DED_LD substitution for 
precisely this purpose. The patch is trivial:

--- configure.in.orig   Fri Dec  3 10:17:19 2004
+++ configure.in        Fri Dec  3 10:18:13 2004
@@ -1162,8 +1162,9 @@
                 darwin*)
                         # Mach-O linker: a shared lib and a loadable
                         # object file is not the same thing.
-                       DED_LDFLAGS="-bundle -flat_namespace -undefined 
suppress -lbundle1.o"
+                       DED_LDFLAGS="-bundle -flat_namespace -undefined 
suppress"
                         DED_CFLAGS="$DED_CFLAGS -fno-common"
+                        DED_LD="$CC"
                 ;;
                 *)
                         # assume GNU linker and ELF

So long as DED_LD is used for linking the various drivers then nothing 
will be broken - everything else will use the default value of ld. I 
provided a complete patch set sometime ago to do just this.

Equally I don't get the reluctance to tidy up or make any changes to 
the build procedure. You have a set of Officially Supported platforms, 
which you presumably can and do test every night in a fully automated 
way.

Unsupported platforms are just that - if you break the build for some 
ancient version of some weird and wonderful UNIX toolchain as part of a 
tidy up then the community will provide patches if they care enough. If 
it becomes broken and no-one notices then that suggests that no-one is 
using that platform anyway.

I see this in action most releases - the *BSD crew submit patches, and 
Redhat Latest always seems to break something. No-one minds too much, 
or if they do they either provide a fix it or use a supported platform.

You guys should be able to make more use of the open source community, 
and support of "non-supported" platforms would seem to be a good start.

<end_soapbox/>

Sean




More information about the erlang-questions mailing list