From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id B93BD240F0 for ; Mon, 22 Jul 2019 03:10:22 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2C_N9KEhPouV for ; Mon, 22 Jul 2019 03:10:22 -0400 (EDT) Received: from smtpng1.m.smailru.net (smtpng1.m.smailru.net [94.100.181.251]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id 1D89A20B20 for ; Mon, 22 Jul 2019 03:10:15 -0400 (EDT) Date: Mon, 22 Jul 2019 10:09:57 +0300 From: Alexander Turenko Subject: [tarantool-patches] Re: [PATCH] build: enable bundled libyaml for all systems. Message-ID: <20190722070957.b5vso3m7lccv2z7v@tkn_work_nb> References: <20190721132557.4519-1-sergepetrenko@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20190721132557.4519-1-sergepetrenko@tarantool.org> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: Serge Petrenko Cc: tarantool-patches@freelists.org We have -DBUILD_SHARED_LIBS=ON cmake option globally enabled on CentOS / Fedora, so libyaml is linked into src/tarantool dynamically. $ git checkout origin/sp/gh-4090-enable-bundled-libyaml-full-ci $ cmake . -DCMAKE_BUILD_TYPE=Debug -DENABLE_BACKTRACE=ON -DENABLE_DIST=ON -DBUILD_SHARED_LIBS=ON && make -j $ ldd src/tarantool | grep yaml libyaml.so => /home/alex/p/tarantool-meta/r/t-2/third_party/libyaml/libyaml.so (0x00007ff0c96de000) $ rm /home/alex/p/tarantool-meta/r/t-2/third_party/libyaml/libyaml.so $ ldd src/tarantool | grep yaml libyaml.so => /usr/lib64/libyaml.so (0x00007f6cc379e000) This means that tarantool executable cannot be relocated to another system w/o libyaml.so. I see no reason to build a bundled library dynamically, so maybe ENABLE_BUNDLED_LIBYAML should enable static build for libyaml and should have precedence over BUILD_SHARED_LIBS. I don't sure however that this is good practice, so I'll ask 2nd review from someone else when you'll fix this problem in this or another way. WBR, Alexander Turenko. On Sun, Jul 21, 2019 at 04:25:57PM +0300, Serge Petrenko wrote: > After we fixed bundled libyaml to correctly print 4-byte Unicode > characters, it is no longer compatible with the upstream version, so > enable building with bundled libyaml for every platform. > This way the tests will pass. > > Follow-up #4090 > --- > https://github.com/tarantool/tarantool/issues/4090 > https://github.com/tarantool/tarantool/tree/sp/gh-4090-enable-bundled-libyaml-full-ci > > apk/APKBUILD | 2 -- > cmake/BuildLibYAML.cmake | 2 +- > debian/rules | 1 - > rpm/tarantool.spec | 1 - > snapcraft.yaml | 1 - > 5 files changed, 1 insertion(+), 6 deletions(-) > > diff --git a/apk/APKBUILD b/apk/APKBUILD > index e8ea5aa13..7d61aa4a5 100644 > --- a/apk/APKBUILD > +++ b/apk/APKBUILD > @@ -23,10 +23,8 @@ build() { > cd "$builddir" > > cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ > - -DENABLE_BUNDLED_LIBYAML:BOOL=OFF \ > -DENABLE_BACKTRACE:BOOL=ON \ > -DENABLE_DIST:BOOL=ON \ > - -DENABLE_BUNDLED_LIBYAML:BOOL=OFF \ > -DCMAKE_INSTALL_PREFIX=/usr \ > -DCMAKE_INSTALL_SYSCONFDIR=/etc \ > -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ > diff --git a/cmake/BuildLibYAML.cmake b/cmake/BuildLibYAML.cmake > index 7caa1828c..95068d73a 100644 > --- a/cmake/BuildLibYAML.cmake > +++ b/cmake/BuildLibYAML.cmake > @@ -6,7 +6,7 @@ macro(libyaml_build) > > add_subdirectory(${PROJECT_SOURCE_DIR}/third_party/libyaml EXCLUDE_FROM_ALL) > # See comments in BuildLibEV.cmake > - set_target_properties(yaml PROPERTIES COMPILE_FLAGS "-w") > + set_target_properties(yaml PROPERTIES COMPILE_FLAGS "-w -std=c99") > > find_package_message(LIBYAML > "Using bundled libyaml" > diff --git a/debian/rules b/debian/rules > index edfecfc33..904eaa719 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -15,7 +15,6 @@ DEB_CMAKE_EXTRA_FLAGS := \ > -DCMAKE_INSTALL_LIBDIR=lib/$(DEB_HOST_MULTIARCH) \ > -DCMAKE_INSTALL_SYSCONFDIR=/etc \ > -DCMAKE_INSTALL_LOCALSTATEDIR=/var \ > - -DENABLE_BUNDLED_LIBYAML=OFF \ > -DENABLE_DIST=ON \ > -DWITH_SYSVINIT=ON \ > -DWITH_SYSTEMD=$(WITH_SYSTEMD) > diff --git a/rpm/tarantool.spec b/rpm/tarantool.spec > index 8bee71ed0..002df26b1 100644 > --- a/rpm/tarantool.spec > +++ b/rpm/tarantool.spec > @@ -124,7 +124,6 @@ C and Lua/C modules. > %cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \ > -DCMAKE_INSTALL_LOCALSTATEDIR:PATH=%{_localstatedir} \ > -DCMAKE_INSTALL_SYSCONFDIR:PATH=%{_sysconfdir} \ > - -DENABLE_BUNDLED_LIBYAML:BOOL=OFF \ > %if %{with backtrace} > -DENABLE_BACKTRACE:BOOL=ON \ > %else > diff --git a/snapcraft.yaml b/snapcraft.yaml > index a7ce540cb..48b32a890 100644 > --- a/snapcraft.yaml > +++ b/snapcraft.yaml > @@ -25,7 +25,6 @@ parts: > plugin: cmake > configflags: > - -DCMAKE_BUILD_TYPE=RelWithDebInfo > - - -DENABLE_BUNDLED_LIBYAML=OFF > - -DENABLE_DIST=OFF # Disable tarantoolctl, init scripts, etc. > build-packages: > - cmake > -- > 2.20.1 (Apple Git-117) >