Tarantool development patches archive
 help / color / mirror / Atom feed
From: Alexander Turenko <alexander.turenko@tarantool.org>
To: Serge Petrenko <sergepetrenko@tarantool.org>
Cc: tarantool-patches@freelists.org
Subject: [tarantool-patches] Re: [PATCH] build: enable bundled libyaml for all systems.
Date: Mon, 22 Jul 2019 10:09:57 +0300	[thread overview]
Message-ID: <20190722070957.b5vso3m7lccv2z7v@tkn_work_nb> (raw)
In-Reply-To: <20190721132557.4519-1-sergepetrenko@tarantool.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)
> 

  reply	other threads:[~2019-07-22  7:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-21 13:25 [tarantool-patches] " Serge Petrenko
2019-07-22  7:09 ` Alexander Turenko [this message]
2019-07-22 21:48   ` [tarantool-patches] Re[2]: " Sergey Petrenko
2019-07-23  9:40     ` [tarantool-patches] " Alexander Turenko
2019-07-23 18:25       ` [tarantool-patches] " Sergey Petrenko
2019-07-24  8:03         ` Alexander Turenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190722070957.b5vso3m7lccv2z7v@tkn_work_nb \
    --to=alexander.turenko@tarantool.org \
    --cc=sergepetrenko@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='[tarantool-patches] Re: [PATCH] build: enable bundled libyaml for all systems.' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox