Discussion:
[gambit-list] on macos: clang over gcc
Ben
2017-09-20 07:18:59 UTC
Permalink
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
Adam
2017-09-20 07:42:39 UTC
Permalink
Ben,

You specify the C compiler path via the CC /CXX system environment
variables.

See ./configure --help .

Adam
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
_______________________________________________
Gambit-list mailing list
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Marc Feeley
2017-09-20 14:37:18 UTC
Permalink
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
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Ben
2017-10-06 07:51:33 UTC
Permalink
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
Post by Marc Feeley
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
% brew install gcc-7
% ./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
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Marc Feeley
2017-10-06 11:55:35 UTC
Permalink
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
Post by Ben
maybe this is of interest ...
I couldn't install gcc-7 with brew but gcc-6.
./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: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
Post by Marc Feeley
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
% brew install gcc-7
% ./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
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Ben
2017-10-06 13:54:10 UTC
Permalink
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
Post by Marc Feeley
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*
% ./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
Post by Ben
maybe this is of interest ...
I couldn't install gcc-7 with brew but gcc-6.
./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: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
Post by Marc Feeley
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
% brew install gcc-7
% ./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
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Marc Feeley
2017-10-06 14:04:37 UTC
Permalink
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
Post by Ben
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
Post by Marc Feeley
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*
% ./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
Post by Ben
maybe this is of interest ...
I couldn't install gcc-7 with brew but gcc-6.
./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: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
Post by Marc Feeley
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
% brew install gcc-7
% ./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
Post by Ben
hi
On macos sierra running the ./configure script gives me the following
*** 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
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
Loading...