[gambit-list] on macos: clang over gcc

Marc Feeley feeley at iro.umontreal.ca
Fri Oct 6 10:04:37 EDT 2017


The quick installation instructions I gave you are on the Gambit github repo main page:


Quick-install instructions for a typical installation

git clone https://github.com/gambit/gambit.git
cd gambit
./configure
make -j8 current-gsc-boot
make -j8 from-scratch
make check
make doc
sudo make install

Detailed installation instructions are given in the file "INSTALL.txt”.


They are also in the INSTALL.txt file:


2) Quick-install instructions
=============================

On most Unix platforms the system is easily built using
configure/make.  First the configure script is called as in:

  % ./configure        # add configure script options as required

If a specific release of the system was obtained as a compressed tar
ball (.tgz extension) it can be built by invoking "make":

  % make

If the source code was obtained by cloning the Gambit repository from
github, more steps are required because some of the files have to be
recreated as they may be stale.

The following commands should then be entered after executing the
configure script to make sure that any stale .c files obtained from
the repository are updated:

  % make current-gsc-boot
  % make bootclean

The "make current-gsc-boot" builds the Gambit compiler that was
current at the latest release and then uses it to compile the very
latest sources of the compiler cloned from github.  The "make
bootclean" then removes all the generated .c files so that they will
be created using the current gsc-boot compiler.  Then the system can
be built by invoking "make":

  % make

These steps can be shortened to the following commands:

  % ./configure        # add configure script options as required
  % make current-gsc-boot
  % make from-scratch


This is an issue that keeps coming up regularly so I’ll see if there isn’t a way to give a big warning if a plain “make” is used when the sources are not consistent with a release point.  Or maybe “make” can check if git is available, and if so do the appropriate procedure depending on the state of the sources (at a release point or not).

Marc



> On Oct 6, 2017, at 9:54 AM, Ben <mailist.ben at srctxt.com> wrote:
> 
> to my defense: the INSTALL instructions of Gambit and its different
> combinations are not so trivial and this specific trinity cannot be
> found in this exact form. But it now that I know it makes perfect
> sense... 
> 
> It did compile, even with the -j8 switch
> 
> thanks alot 
> 
> 
> 
> On Fri, Oct 6, 2017, at 01:55 PM, Marc Feeley wrote:
>> Please read the build steps in the INSTALL.txt file…  When freshly cloned
>> from github, Gambit needs to be bootstrapped, so you need to *precisely*
>> follow these steps:
>> 
>>  % ./configure --enable-single-host CC=gcc-6
>>  % make current-gsc-boot
>>  % make from-scratch
>> 
>> The “./configure …” followed by “make” that you are using is appropriate
>> when building from a release of Gambit, for example v4.8.8 with no other
>> patches applied.
>> 
>> So above the “make current-gsc-boot” builds the latest release of Gambit
>> by using git to checkout the latest release (v4.8.8 currently) and then
>> creates boot/gsc/gsc which is then used by the “make from-scratch” to
>> bootstrap Gambit using the repo HEAD.
>> 
>> Marc
>> 
>> 
>> 
>>> On Oct 6, 2017, at 3:51 AM, Ben <mailist.ben at srctxt.com> wrote:
>>> 
>>> maybe this is of interest ...
>>> 
>>> I couldn't install gcc-7 with brew but gcc-6. 
>>> 
>>> This will not compile:
>>> 
>>>   ./configure --enable-single-host CC=gcc-6
>>>    make
>>> ....
>>> making all in lib
>>> gcc-6 -Wno-unused -Wno-write-strings -Wdisabled-optimization -O1 -fwrapv
>>> -fno-strict-aliasing -fno-trapping-math -fno-math-errno
>>> -fschedule-insns2 -fomit-frame-pointer -fPIC -fno-common -mieee-fp
>>> -mpc64   -I"../include" -c -o "_kernel.o" -I. -DHAVE_CONFIG_H
>>> -D___GAMBITDIR="\"/usr/local/Gambit\"" -D___SYS_TYPE_CPU="\"x86_64\""
>>> -D___SYS_TYPE_VENDOR="\"apple\"" -D___SYS_TYPE_OS="\"darwin16.7.0\""
>>> -D___CONFIGURE_COMMAND="\"./configure '--enable-single-host'
>>> 'CC=gcc-6'"\" -D___OBJ_EXTENSION="\".o\"" -D___EXE_EXTENSION="\"\""
>>> -D___BAT_EXTENSION="\"\"" -D___PRIMAL _kernel.c -D___LIBRARY
>>> _kernel.c: In function '___H__20___kernel':
>>> _kernel.c:6346:27: error: void value not ignored as it ought to be
>>>   ___FLONUM_VAL(___ARG2) = ___set_heartbeat_interval
>>>   (___FLONUM_VAL(___ARG1));
>>>                          ^
>>> make[1]: *** [_kernel.o] Error 1
>>> make: *** [all-recursive] Error 1
>>> 
>>> 
>>> On Wed, Sep 20, 2017, at 04:37 PM, Marc Feeley wrote:
>>>> By default the configure script searches for gcc before looking for
>>>> clang.  However… X-code installs “clang” and also “gcc”, and that “gcc”
>>>> is not the GNU gcc… it is a wrapper around clang/llvm.  So to install the
>>>> GNU gcc you need to use homebrew like this:
>>>> 
>>>> % brew install gcc-7
>>>> 
>>>> and then tell the configure script to use that compiler:
>>>> 
>>>> % ./configure --enable-single-host CC=gcc-7
>>>> 
>>>> You will notice a dramatic decrease in compilation time and in execution
>>>> time (about 3 or 4 times faster execution if I recall correctly).  On my
>>>> machine a “make -j8” after a “make clean” takes 30 seconds.
>>>> 
>>>> Marc
>>>> 
>>>> 
>>>> 
>>>>> On Sep 20, 2017, at 3:18 AM, Ben <mailist.ben at srctxt.com> wrote:
>>>>> 
>>>>> hi
>>>>> On macos sierra running the ./configure script gives me the following
>>>>> message:
>>>>> 
>>>>> *** The clang compiler is being used.  Please be aware that the build 
>>>>> ***
>>>>> *** may take a very long time (over 30 minutes on a fairly fast       
>>>>> ***
>>>>> *** machine with clang 3.0).  Configuring with GNU GCC will give a    
>>>>> ***
>>>>> *** faster build (1 min on the same machine with GNU GCC 4.2.1) and   
>>>>> ***
>>>>> *** the executable will be faster.    
>>>>> 
>>>>> 
>>>>> What can I do to enforce GCC? I cannot see any specific configure
>>>>> --options
>>>>> 
>>>>> Attached you'll find the entire configure log.
>>>>> 
>>>>> Thanks,
>>>>> Ben
>>>>> 
>>>>> <configure.log>_______________________________________________
>>>>> 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