[gambit-list] Error configuring gambit source

Marc Feeley feeley at iro.umontreal.ca
Wed Jun 28 07:47:45 EDT 2017


Hmmm…

I think the test #if __GNUC__ >= 5 is incorrect… probably the support for those builtins started at some minor version of the major version 5. I’ll dig to see when they appeared and fix the test.  If you can’t wait, just change the 5 by 6.

Marc



> On Jun 28, 2017, at 7:31 AM, Vijay Mathew <vijay.the.lisper at gmail.com> wrote:
> 
> $ gcc -v
> 
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin14.0.0/5.0.0/lto-wrapper
> Target: x86_64-apple-darwin14.0.0
> Configured with: ../gcc-5-20141005/configure --enable-languages=c++,fortran
> Thread model: posix
> gcc version 5.0.0 20141005 (experimental) (GCC)
> 
> On Wed, Jun 28, 2017 at 12:22 PM, Marc Feeley <feeley at iro.umontreal.ca> wrote:
> 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