[mercury-users] Problem building on Mac OS X / Xcode 4 / clang
Sean Johnson
sean at snootymonkey.com
Wed May 23 07:30:06 AEST 2012
Julien,
The patch worked well once manually applied. Thanks so much!
Cheers,
Sean
On May 22, 2012, at 11:10 AM, Julien Fischer wrote:
>
> On Tue, 22 May 2012, Julien Fischer wrote:
>
>>> Without parallel, the make completed. The make install then failed with:
>>> /Users/sean/build/mercury-compiler-11.07.1/install_grade_dir.hlc.par.gc/scripts/mgnuc --grade hlc.par.gc --c-debug --no-ansi -- -c mercury.c -o mercury.o
>>> /Users/sean/build/mercury-compiler-11.07.1/install_grade_dir.hlc.par.gc/scripts/mgnuc --grade hlc.par.gc --c-debug --no-ansi -- -c mercury_accurate_gc.c -o mercury_accurate_gc.o
>>> In file included from mercury_accurate_gc.c:42:
>>> In file included from ./mercury_imp.h:62:
>>> ./mercury_engine.h:465:12: error: thread-local storage is unsupported for the current target
>>> extern __thread MercuryEngine *MR_thread_engine_base;
>>> ^
>>
>> It appears that clang does not support GCC's __thread extension on Mac
>> OS X (or more specifically on platforms that don't use ELF).
>> Annoyingly, the configure script's test for this feature passes even
>> though it doesn't appear to work with clang. I think I have a fix for
>> this one - I will test it and get back to you.
>
> The following patch to the configure script should fix the above -- I
> haven't been able to test it on Mac OS 10.7 however and the problem
> doesn't appear to show up with versions before that.
>
> Julien.
>
> Index: configure.in
> ===================================================================
> RCS file: /home/mercury/mercury1/repository/mercury/configure.in,v
> retrieving revision 1.614
> diff -u -r1.614 configure.in
> --- configure.in 19 May 2012 13:24:32 -0000 1.614
> +++ configure.in 22 May 2012 15:06:56 -0000
> @@ -3141,8 +3141,18 @@
> case "$host" in
> *-solaris2.*)
> ;;
> + *apple*darwin*)
> + # XXX only attempt to use __thread with GCC on Mac OS X.
> + # clang does not support it, although the above test "passes"
> + # with some versions of clang.
> + case "$C_COMPILER_TYPE" in
> + gcc*)
> + AC_DEFINE([MR_THREAD_LOCAL_STORAGE])
> + ;;
> + esac
> + ;;
> *)
> - AC_DEFINE(MR_THREAD_LOCAL_STORAGE)
> + AC_DEFINE([MR_THREAD_LOCAL_STORAGE])
> ;;
> esac
> fi
> --------------------------------------------------------------------------
> mercury-users mailing list
> Post messages to: mercury-users at csse.unimelb.edu.au
> Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
> Subscriptions: mercury-users-request at csse.unimelb.edu.au
> --------------------------------------------------------------------------
__________
Sean Johnson - Founder
sean at snootymonkey.com, @snootymonkey on Twitter
BubbleTimer - Time Well Spent
http://bubbletimer.com/ @bubbletimer on Twitter
--------------------------------------------------------------------------
mercury-users mailing list
Post messages to: mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions: mercury-users-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the users
mailing list