[gambit-list] Error configuring gambit source
Marc Feeley
feeley at iro.umontreal.ca
Wed Jun 28 02:52:56 EDT 2017
Please do a “gcc -v”. The __builtin_add_overflow should be predefined by gcc so it is strange that it is not found. This should be true of the LLVM gcc and the GNU gcc. Moreover, there is a test in include/gambit.h.in to check if it can be used:
#ifdef __GNUC__
#if __GNUC__ >= 5
#define ___USE_builtin_op_overflow
#endif
#endif
#ifdef __clang__
#if __has_builtin(__builtin_add_overflow) && __has_builtin(__builtin_sub_overflow) && __has_builtin(__builtin_mul_overflow)
#define ___USE_builtin_op_overflow
#endif
#endif
Marc
> On Jun 28, 2017, at 1:18 AM, Vijay Mathew <vijay.the.lisper at gmail.com> wrote:
>
> Hi,
>
> I am trying to build the latest development source (gambit-v4_8_8-devel) on Mac OS X (darwin14.5.0). I am running into the following error while configuring the source:
>
> In file included from _num.c:705:0:
> _num.c: In function ‘long int ___H__20___num(___processor_state)’:
> ../include/gambit.h:2880:98: error: ‘__builtin_add_overflow’ was not declared in this scope
> #define ___FIXADDP(x,y)(___EXPECT_FALSE(__builtin_add_overflow((___WORD)(x),(___WORD)(y),&___temp))?___FAL:___temp)
> ^
> ../include/gambit.h:4296:30: note: in definition of macro ‘___SET_R3’
> #define ___SET_R3(val)___R3=(val);
> ^
> ../include/gambit.h:2880:25: note: in expansion of macro ‘___EXPECT_FALSE’
> #define ___FIXADDP(x,y)(___EXPECT_FALSE(__builtin_add_overflow((___WORD)(x),(___WORD)(y),&___temp))?___FAL:___temp)
> ^
> _num.c:22107:14: note: in expansion of macro ‘___FIXADDP’
> ___SET_R3(___FIXADDP(___R1,___R2))
> ^
> ../include/gambit.h:2890:95: error: ‘__builtin_mul_overflow’ was not declared in this scope
> #define ___FIXMULP(x,y)(___EXPECT_FALSE(__builtin_mul_overflow((___WORD)(x),___INT(y),&___temp))?___FAL:___temp)
> ^
> ../include/gambit.h:4296:30: note: in definition of macro ‘___SET_R3’
> #define ___SET_R3(val)___R3=(val);
> ^
> ../include/gambit.h:2890:25: note: in expansion of macro ‘___EXPECT_FALSE’
> #define ___FIXMULP(x,y)(___EXPECT_FALSE(__builtin_mul_overflow((___WORD)(x),___INT(y),&___temp))?___FAL:___temp)
> ^
> _num.c:22698:14: note: in expansion of macro ‘___FIXMULP’
> ___SET_R3(___FIXMULP(___R1,___R2))
> ^
> ../include/gambit.h:2907:98: error: ‘__builtin_sub_overflow’ was not declared in this scope
> #define ___FIXSUBP(x,y)(___EXPECT_FALSE(__builtin_sub_overflow((___WORD)(x),(___WORD)(y),&___temp))?___FAL:___temp)
> ^
> ../include/gambit.h:4296:30: note: in definition of macro ‘___SET_R3’
> #define ___SET_R3(val)___R3=(val);
> ^
> ../include/gambit.h:2907:25: note: in expansion of macro ‘___EXPECT_FALSE’
> #define ___FIXSUBP(x,y)(___EXPECT_FALSE(__builtin_sub_overflow((___WORD)(x),(___WORD)(y),&___temp))?___FAL:___temp)
> ^
> _num.c:23679:14: note: in expansion of macro ‘___FIXSUBP’
> ___SET_R3(___FIXSUBP(___R1,___R2))
> ^
>
> The complete configure command is:
>
> ./configure --enable-single-host --enable-multiple-threaded-vms --bindir=${MY_HOME}/platform/gsc/bin --includedir=${MY_HOME}/platform/gsc/include --libdir=${MY_HOME}/platform/gsc/lib
>
> If the `--enable-multiple-threaded-vms` option is removed, I get a different error:
>
> gcc -Wno-unused -Wno-write-strings -O1 -fwrapv -fno-strict-aliasing -fno-trapping-math -fno-math-errno -fschedule-insns2 -fomit-frame-pointer -fPIC -fno-common -mieee-fp -mpc64 -I"../include" -o "gsi" _gsi.o _gsi_.o "../lib/libgambit.a" libgambitgsi.a
> Undefined symbols for architecture x86_64:
> "___builtin_add_overflow", referenced from:
> ____H__20___num in libgambit.a(_num.o)
> ____H__20___system in libgambit.a(_system.o)
> "___builtin_mul_overflow", referenced from:
> ____H__20___num in libgambit.a(_num.o)
> "___builtin_sub_overflow", referenced from:
> ____H__20___num in libgambit.a(_num.o)
> ld: symbol(s) not found for architecture x86_64
>
> What am I doing wrong?
>
> Thanks,
>
> --Vijay
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
More information about the Gambit-list
mailing list