From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-f67.google.com (mail-ot1-f67.google.com [209.85.210.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 3E4E943040D for ; Mon, 31 Aug 2020 20:37:34 +0300 (MSK) Received: by mail-ot1-f67.google.com with SMTP id h17so6031524otl.9 for ; Mon, 31 Aug 2020 10:37:34 -0700 (PDT) MIME-Version: 1.0 References: <20200825140108.52090-1-huston.mavr@gmail.com> <20200825145103.hiqmjkimuk3al3rt@tkn_work_nb> In-Reply-To: From: Alexandr Barulev Date: Mon, 31 Aug 2020 20:37:20 +0300 Message-ID: Content-Type: multipart/alternative; boundary="00000000000072006b05ae2fdb2c" Subject: Re: [Tarantool-patches] [PATCH v2] build: refactor static build process List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Turenko Cc: tarantool-patches@dev.tarantool.org, yaroslav.dynnikov@gmail.com --00000000000072006b05ae2fdb2c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello! Here is a new fix for building curses/ncurses library. Curses uses terminfo db (https://linux.die.net/man/5/terminfo). Previous version of static-build patch didn't link with terminfo database and this led to the problem that backspace and arrows doesn't work at tarantool terminal. Now this behaviour is fixed by setting search paths of terminfo db. Diff: diff --git a/static-build/CMakeLists.txt b/static-build/CMakeLists.txt index ecfdd0455..d07cae176 100644 --- a/static-build/CMakeLists.txt +++ b/static-build/CMakeLists.txt @@ -82,9 +82,18 @@ ExternalProject_Add(ncurses # necessary for correct work of FindCurses.cmake module (this module is # builtin at cmake package) which used in cmake/FindReadline.cmake --enable-overwrite - --with-termlib # enable building libtinfo to prevent linking - # with libtinfo from system directories - INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install.libs + + # enable building libtinfo to prevent linking with libtinfo from system + # directories + --with-termlib + + # set search paths for terminfo db + --with-terminfo-dirs=3D/lib/terminfo:/usr/share/terminfo:/etc/terminfo + + # disable install created terminfo db, use db from system + --disable-db-install + --without-progs + --without-manpages ) # =D0=BF=D1=82, 28 =D0=B0=D0=B2=D0=B3. 2020 =D0=B3. =D0=B2 00:43, Alexandr Ba= rulev : > Hello, thanks for the new iteration of review! > > I deleted unused box.lua script and reference to it in suite.ini > at static-build tests. I added comments about explicitly setting > compilers at static-build/CMakeLists.txt. > > Also I fixed building libncurses/libcurses for correct work of > FindCurses.cmake module. After this change there is no need to set > CURSES_NEED_NCURSES at cmake/FindReadline.cmake, so I checkouted > cmake/FindReadline.cmake from master and update patch commit massage. > > And fixed .travis.mk static_build_cmake_* jobs - build tarantool > with -DCMAKE_BUILD_TYPE=3DRelWithDebInfo cmake option. > > > Here is a new commit message (deleted part about CURSES_NEED_NCURSES): > > build: refactor static build process > > Refactored static build process to use static-build/CMakeLists.txt > instead of Dockerfile.staticbuild (this allows to support static > build on macOS). Following third-party dependencies for static build > are installed via cmake `ExternalProject_Add`: > - OpenSSL > - Zlib > - Ncurses > - Readline > - Unwind > - ICU > > * Added support static build for macOS > * Fixed `CONFIGURE_COMMAND` while building bundled libcurl for staic > build at file cmake/BuildLibCURL.cmake: > - disable building shared libcurl libraries (by setting > `--disable-shared` option) > - disable hiding libcurl symbols (by setting > `--disable-symbol-hiding` option) > - prevent linking libcurl with system libz by settign > `--with-zlib=3D${FOUND_ZLIB_ROOT_DIR}` option) > * Removed Dockerfile.staticbuild > * Added new gitlab.ci jobs to test new style static build: > - static_build_cmake_linux > - static_build_cmake_osx_15 > * Removed static_docker_build gitlab.ci job > > Closes #5095 > > > Here is a link to branch: > https://github.com/tarantool/tarantool/tree/rosik/refactor-static-build > > > And here is a diff: > > diff --git a/.travis.mk b/.travis.mk > index 482672429..ccd9d6db1 100644 > --- a/.travis.mk > +++ b/.travis.mk > @@ -151,7 +151,8 @@ test_static_build: deps_debian_static > # New static build > # builddir used in this target - is a default build path from cmake > ExternalProject_Add() > test_static_build_cmake_linux: > - cd static-build && cmake . && make -j && ctest -V > + cd static-build && cmake > -DCMAKE_TARANTOOL_ARGS=3D"-DCMAKE_BUILD_TYPE=3DRelWithDebInfo;-DENABLE_WE= RROR=3DON" > . && \ > + make -j && ctest -V > cd test && /usr/bin/python test-run.py --force \ > --builddir ${PWD}/static-build/tarantool-prefix/src/tarantool-build > $(TEST_RUN_EXTRA_PARAMS) > > @@ -234,7 +235,8 @@ base_deps_osx: > > # builddir used in this target - is a default build path from cmake > ExternalProject_Add() > test_static_build_cmake_osx: base_deps_osx > - cd static-build && cmake . && make -j && ctest -V > + cd static-build && cmake > -DCMAKE_TARANTOOL_ARGS=3D"-DCMAKE_BUILD_TYPE=3DRelWithDebInfo;-DENABLE_WE= RROR=3DON" > . && \ > + make -j && ctest -V > ${INIT_TEST_ENV_OSX}; \ > cd test && ./test-run.py --vardir /tmp/tnt \ > --builddir ${PWD}/static-build/tarantool-prefix/src/tarantool-build \ > diff --git a/cmake/FindReadline.cmake b/cmake/FindReadline.cmake > index afe480679..c48bdcb3e 100644 > --- a/cmake/FindReadline.cmake > +++ b/cmake/FindReadline.cmake > @@ -14,17 +14,7 @@ if(BUILD_STATIC) > if (NOT CURSES_INFO_LIBRARY) > set(CURSES_INFO_LIBRARY "") > endif() > - > - # From Modules/FindCurses.cmake: > - # Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the > - # ``find_package(Curses)`` call if NCurses functionality is required= . > - # This flag is set for linking with required library (installed > - # via static-build/CMakeLists.txt). If this variable won't be set > - # then tarantool binary links with system library curses which is an > - # entire copy of ncurses > - set(CURSES_NEED_NCURSES TRUE) > endif() > - > find_package(Curses) > if(NOT CURSES_FOUND) > find_package(Termcap) > diff --git a/static-build/CMakeLists.txt b/static-build/CMakeLists.txt > index d90a642e6..ecfdd0455 100644 > --- a/static-build/CMakeLists.txt > +++ b/static-build/CMakeLists.txt > @@ -9,6 +9,12 @@ set(NCURSES_VERSION 6.2) > set(READLINE_VERSION 8.0) > set(UNWIND_VERSION 1.3-rc1) > > +# Set compilers explicitly for further configuring dependencies with > +# these compilers. This gonna solve libicu building problem in case when > +# at dependency configure stage no compiler specified and clang compiler > +# exists on linux machine, libicu sources would be compiled with clang > +# while for other dependencies (including tarantool) gcc would be used. > +# This behaviour causes problem at tarantool linkage stage. > if (APPLE) > find_program(C_COMPILER clang) > find_program(CXX_COMPILER clang++) > @@ -70,6 +76,15 @@ ExternalProject_Add(ncurses > CXX=3D${CMAKE_CXX_COMPILER} > /configure > --prefix=3D > + > + # This flag enables creation of libcurses.a as a symlink to > libncurses.a > + # and disables subdir creation `ncurses` at > /include. It is > + # necessary for correct work of FindCurses.cmake module (this > module is > + # builtin at cmake package) which used in cmake/FindReadline.cma= ke > + --enable-overwrite > + --with-termlib # enable building libtinfo to prevent > linking > + # with libtinfo from system directories > + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install.libs > ) > > # > diff --git a/static-build/test/static-build/box.lua > b/static-build/test/static-build/box.lua > deleted file mode 100755 > index bad8a9055..000000000 > --- a/static-build/test/static-build/box.lua > +++ /dev/null > @@ -1,3 +0,0 @@ > -#!/usr/bin/env tarantool > - > -require('console').listen(os.getenv('ADMIN')) > diff --git a/static-build/test/static-build/suite.ini > b/static-build/test/static-build/suite.ini > index 92e349466..5aabadd92 100644 > --- a/static-build/test/static-build/suite.ini > +++ b/static-build/test/static-build/suite.ini > @@ -1,5 +1,4 @@ > [default] > core =3D app > description =3D Static build tests > -script =3D box.lua > is_parallel =3D True > > =D0=B2=D1=82, 25 =D0=B0=D0=B2=D0=B3. 2020 =D0=B3. =D0=B2 17:51, Alexander= Turenko < > alexander.turenko@tarantool.org>: > >> I looked very briefly (not thoroughly at all) on this iteration. >> >> There is nothing that confuses me (except few tiny comments below). >> >> I hope Igor will do thorough review. >> >> WBR, Alexander Turenko. >> >> > +if (APPLE) >> > + find_program(C_COMPILER clang) >> > + find_program(CXX_COMPILER clang++) >> > +else() >> > + find_program(C_COMPILER gcc) >> > + find_program(CXX_COMPILER g++) >> > +endif() >> >> Can we just leave it default? >> >> In offline discussion Alexandr B. said that tarantool builds with gcc, >> but icu with clang that gives some problem. >> >> Possible solution is to pass ${CMAKE_C_COMPILER} (and CXX too where >> necessary) to a subproject as we do for c-ares and curl. It seems it is >> already done, so maybe it worth to re-check whether it solves the >> problem. >> >> Anyway, if we really need to set a compiler here explicitly, I don't >> mind. Just noted that this way is somewhat unusual as I see. >> >> > diff --git a/static-build/test/static-build/box.lua >> b/static-build/test/static-build/box.lua >> > new file mode 100755 >> > index 000000000..bad8a9055 >> > --- /dev/null >> > +++ b/static-build/test/static-build/box.lua >> > @@ -0,0 +1,3 @@ >> > +#!/usr/bin/env tarantool >> > + >> > +require('console').listen(os.getenv('ADMIN')) >> >> Is looks redundant, see the comment below. >> >> > diff --git a/static-build/test/static-build/suite.ini >> b/static-build/test/static-build/suite.ini >> > new file mode 100644 >> > index 000000000..92e349466 >> > --- /dev/null >> > +++ b/static-build/test/static-build/suite.ini >> > @@ -0,0 +1,5 @@ >> > +[default] >> > +core =3D app >> > +description =3D Static build tests >> > +script =3D box.lua >> > +is_parallel =3D True >> >> 'script' does not have sense for 'core =3D app' test, it is for 'core = =3D >> tarantool' tests. >> > --00000000000072006b05ae2fdb2c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello!

Here is a new fix for building curses/ncurse= s library. Curses uses
terminfo db (https://linux.die.net/man/5/terminfo). Previous versionof static-build patch didn't link with terminfo database and this led<= br>to the problem that backspace and arrows doesn't work at tarantoolterminal. Now this behaviour is fixed =C2=A0by setting search paths ofterminfo db.

Diff:

diff --git a/static-build/CMakeLists.txt = b/static-build/CMakeLists.txt
index ecfdd0455..d07cae176 100644
--- a= /static-build/CMakeLists.txt
+++ b/static-build/CMakeLists.txt
@@ -82= ,9 +82,18 @@ ExternalProject_Add(ncurses
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0# necessary for correct work of FindCurses.cmake module (this module is<= br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# builtin at cmake package) which used= in cmake/FindReadline.cmake
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0--enable-= overwrite
- =C2=A0 =C2=A0 =C2=A0 =C2=A0--with-termlib =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0# enable building libtinfo to prevent linking
- =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# with libtinfo from system directories
-= =C2=A0 =C2=A0INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install.libs
+
+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0# enable building libtinfo to prevent linking wi= th libtinfo from system
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0# directories
+ = =C2=A0 =C2=A0 =C2=A0 =C2=A0--with-termlib
+
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0# set search paths for terminfo db
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0--= with-terminfo-dirs=3D/lib/terminfo:/usr/share/terminfo:/etc/terminfo
++ =C2=A0 =C2=A0 =C2=A0 =C2=A0# disable install created terminfo db, use d= b from system
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0--disable-db-install
+ =C2= =A0 =C2=A0 =C2=A0 =C2=A0--without-progs
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0--w= ithout-manpages
=C2=A0)
=C2=A0
=C2=A0#

=D0=BF=D1=82, 28 =D0=B0= =D0=B2=D0=B3. 2020 =D0=B3. =D0=B2 00:43, Alexandr Barulev <huston.mavr@gmail.com>:
Hello, thanks for the new iteration of review!

I deleted unused bo= x.lua script and reference to it in suite.ini
at static-build tests. I a= dded comments about explicitly setting
compilers at static-build/CMakeL= ists.txt.

Also I fixed building libncurses/libcurses for correct wor= k of
FindCurses.cmake module. After this change there is no need to set=
CURSES_NEED_NCURSES at cmake/FindReadline.cmake, so I checkouted
c= make/FindReadline.cmake from master and update patch commit massage.
And fixed .travis.mk st= atic_build_cmake_* jobs - build tarantool
with -DCMAKE_BUILD_TYPE=3DRelW= ithDebInfo cmake option.


Here is a new commit message (deleted p= art about CURSES_NEED_NCURSES):

build: refactor static build process=

Refactored static build process to use static-build/CMakeLists.txt<= br>instead of Dockerfile.staticbuild (this allows to support static
buil= d on macOS). Following third-party dependencies for static build
are ins= talled via cmake `ExternalProject_Add`:
=C2=A0 =C2=A0 - OpenSSL
=C2= =A0 =C2=A0 - Zlib
=C2=A0 =C2=A0 - Ncurses
=C2=A0 =C2=A0 - Readline=C2=A0 =C2=A0 - Unwind
=C2=A0 =C2=A0 - ICU

* Added support stati= c build for macOS
* Fixed `CONFIGURE_COMMAND` while building bundled lib= curl for staic
=C2=A0 =C2=A0 build at file cmake/BuildLibCURL.cmake:
= =C2=A0 =C2=A0 - disable building shared libcurl libraries (by setting
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 `--disable-shared` option)
=C2=A0 =C2=A0 - d= isable hiding libcurl symbols (by setting
=C2=A0 =C2=A0 =C2=A0 =C2=A0 `-= -disable-symbol-hiding` option)
=C2=A0 =C2=A0 - prevent linking libcurl = with system libz by settign
=C2=A0 =C2=A0 =C2=A0 =C2=A0 `--with-zlib=3D$= {FOUND_ZLIB_ROOT_DIR}` option)
* Removed Dockerfile.staticbuild
* Add= ed new gitlab.ci jobs to= test new style static build:
=C2=A0 =C2=A0 - static_build_cmake_linux=C2=A0 =C2=A0 - static_build_cmake_osx_15
* Removed static_docker_buil= d gitlab.ci job

C= loses #5095




And here is a diff:

=C2=A0= diff --git a/.travis.mk = b/.travis.mk
index 48= 2672429..ccd9d6db1 100644
--- a/.travis.mk
+++ b/.travis.mk
@@ -151,7 +151,8 @@ test_static_build: deps_debian_sta= tic
=C2=A0# New static build
=C2=A0# builddir used in this target - i= s a default build path from cmake ExternalProject_Add()
=C2=A0test_stati= c_build_cmake_linux:
- cd static-build && cmake . && mak= e -j && ctest -V
+ cd static-build && cmake -DCMAKE_TARA= NTOOL_ARGS=3D"-DCMAKE_BUILD_TYPE=3DRelWithDebInfo;-DENABLE_WERROR=3DON= " . && \
+ make -j && ctest -V
=C2=A0 cd test &a= mp;& /usr/bin/python test-run.py --force \
=C2=A0 --builddir ${PWD}= /static-build/tarantool-prefix/src/tarantool-build $(TEST_RUN_EXTRA_PARAMS)=
=C2=A0
@@ -234,7 +235,8 @@ base_deps_osx:
=C2=A0
=C2=A0# build= dir used in this target - is a default build path from cmake ExternalProjec= t_Add()
=C2=A0test_static_build_cmake_osx: base_deps_osx
- cd static-= build && cmake . && make -j && ctest -V
+ cd sta= tic-build && cmake -DCMAKE_TARANTOOL_ARGS=3D"-DCMAKE_BUILD_TYP= E=3DRelWithDebInfo;-DENABLE_WERROR=3DON" . && \
+ make -j &= amp;& ctest -V
=C2=A0 ${INIT_TEST_ENV_OSX}; \
=C2=A0 cd test &= ;& ./test-run.py --vardir /tmp/tnt \
=C2=A0 --builddir ${PWD}/stati= c-build/tarantool-prefix/src/tarantool-build \
diff --git a/cmake/FindRe= adline.cmake b/cmake/FindReadline.cmake
index afe480679..c48bdcb3e 10064= 4
--- a/cmake/FindReadline.cmake
+++ b/cmake/FindReadline.cmake
@@= -14,17 +14,7 @@ if(BUILD_STATIC)
=C2=A0 =C2=A0 =C2=A0if (NOT CURSES_INF= O_LIBRARY)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0set(CURSES_INFO_LIBRARY &qu= ot;")
=C2=A0 =C2=A0 =C2=A0endif()
-
- =C2=A0 =C2=A0# From Mod= ules/FindCurses.cmake:
- =C2=A0 =C2=A0# Set ``CURSES_NEED_NCURSES`` to `= `TRUE`` before the
- =C2=A0 =C2=A0# ``find_package(Curses)`` call if NCu= rses functionality is required.
- =C2=A0 =C2=A0# This flag is set for li= nking with required library (installed
- =C2=A0 =C2=A0# via static-build= /CMakeLists.txt). If this variable won't be set
- =C2=A0 =C2=A0# the= n tarantool binary links with system library curses which is an
- =C2=A0= =C2=A0# entire copy of ncurses
- =C2=A0 =C2=A0set(CURSES_NEED_NCURSES T= RUE)
=C2=A0endif()
-
=C2=A0find_package(Curses)
=C2=A0if(NOT CU= RSES_FOUND)
=C2=A0 =C2=A0 =C2=A0find_package(Termcap)
diff --git a/st= atic-build/CMakeLists.txt b/static-build/CMakeLists.txt
index d90a642e6.= .ecfdd0455 100644
--- a/static-build/CMakeLists.txt
+++ b/static-buil= d/CMakeLists.txt
@@ -9,6 +9,12 @@ set(NCURSES_VERSION 6.2)
=C2=A0set(= READLINE_VERSION 8.0)
=C2=A0set(UNWIND_VERSION 1.3-rc1)
=C2=A0
+# = Set compilers explicitly for further configuring dependencies with
+# th= ese compilers. This gonna solve libicu building problem in case when
+# = at dependency configure stage no compiler specified and clang compiler
+= # exists on linux machine, libicu sources would be compiled with clang
+= # while for other dependencies (including tarantool) gcc would be used.
= +# This behaviour causes problem at tarantool linkage stage.
=C2=A0if (A= PPLE)
=C2=A0 =C2=A0 =C2=A0find_program(C_COMPILER clang)
=C2=A0 =C2= =A0 =C2=A0find_program(CXX_COMPILER clang++)
@@ -70,6 +76,15 @@ External= Project_Add(ncurses
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0CXX=3D${CMAKE_CXX_= COMPILER}
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0<SOURCE_DIR>/configure=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0--prefix=3D<INSTALL_DIR>
++ =C2=A0 =C2=A0 =C2=A0 =C2=A0# This flag enables creation of libcurses.a = as a symlink to libncurses.a
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0# and disables= subdir creation `ncurses` at =C2=A0<install_dir>/include. It is
+= =C2=A0 =C2=A0 =C2=A0 =C2=A0# necessary for correct work of FindCurses.cmak= e module (this module is
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0# builtin at cmake= package) which used in cmake/FindReadline.cmake
+ =C2=A0 =C2=A0 =C2=A0 = =C2=A0--enable-overwrite
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0--with-termlib =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# enable building libtinfo to prevent linkin= g
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# with libtinfo from system di= rectories
+ =C2=A0 =C2=A0INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install.l= ibs
=C2=A0)
=C2=A0
=C2=A0#
diff --git a/static-build/test/stati= c-build/box.lua b/static-build/test/static-build/box.lua
deleted file mo= de 100755
index bad8a9055..000000000
--- a/static-build/test/static-b= uild/box.lua
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env taranto= ol
-
-require('console').listen(os.getenv('ADMIN'))diff --git a/static-build/test/static-build/suite.ini b/static-build/test= /static-build/suite.ini
index 92e349466..5aabadd92 100644
--- a/stati= c-build/test/static-build/suite.ini
+++ b/static-build/test/static-build= /suite.ini
@@ -1,5 +1,4 @@
=C2=A0[default]
=C2=A0core =3D app
= =C2=A0description =3D Static build tests
-script =3D box.lua
=C2=A0is= _parallel =3D True

=D0=B2=D1=82, 25 =D0=B0=D0=B2=D0=B3. 2020 =D0=B3. =D0= =B2 17:51, Alexander Turenko <alexander.turenko@tarantool.org>:
I looked very briefly (= not thoroughly at all) on this iteration.

There is nothing that confuses me (except few tiny comments below).

I hope Igor will do thorough review.

WBR, Alexander Turenko.

> +if (APPLE)
> +=C2=A0 =C2=A0 find_program(C_COMPILER clang)
> +=C2=A0 =C2=A0 find_program(CXX_COMPILER clang++)
> +else()
> +=C2=A0 =C2=A0 find_program(C_COMPILER gcc)
> +=C2=A0 =C2=A0 find_program(CXX_COMPILER g++)
> +endif()

Can we just leave it default?

In offline discussion Alexandr B. said that tarantool builds with gcc,
but icu with clang that gives some problem.

Possible solution is to pass ${CMAKE_C_COMPILER} (and CXX too where
necessary) to a subproject as we do for c-ares and curl. It seems it is
already done, so maybe it worth to re-check whether it solves the
problem.

Anyway, if we really need to set a compiler here explicitly, I don't mind. Just noted that this way is somewhat unusual as I see.

> diff --git a/static-build/test/static-build/box.lua b/static-build/tes= t/static-build/box.lua
> new file mode 100755
> index 000000000..bad8a9055
> --- /dev/null
> +++ b/static-build/test/static-build/box.lua
> @@ -0,0 +1,3 @@
> +#!/usr/bin/env tarantool
> +
> +require('console').listen(os.getenv('ADMIN'))

Is looks redundant, see the comment below.

> diff --git a/static-build/test/static-build/suite.ini b/static-build/t= est/static-build/suite.ini
> new file mode 100644
> index 000000000..92e349466
> --- /dev/null
> +++ b/static-build/test/static-build/suite.ini
> @@ -0,0 +1,5 @@
> +[default]
> +core =3D app
> +description =3D Static build tests
> +script =3D box.lua
> +is_parallel =3D True

'script' does not have sense for 'core =3D app' test, it is= for 'core =3D
tarantool' tests.
--00000000000072006b05ae2fdb2c--