From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/4] Makefile: generate CMake toolchain file in $(O)
Date: Mon, 10 Jan 2011 18:50:13 +0100 [thread overview]
Message-ID: <20110110185013.331f5af1@surf> (raw)
In-Reply-To: <20110107181536.53713c9a@surf>
Hello Bjorn,
On Fri, 7 Jan 2011 18:15:36 +0100
Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:
> diff --git a/Makefile b/Makefile
> index 831b424..994dd52 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -375,8 +375,11 @@ world: prepare dependencies dirs $(BASE_TARGETS)
> $(TARGETS_ALL) $(O)/toolchainfile.cmake:
> @echo -en "\
> set(CMAKE_SYSTEM_NAME Linux)\n\
> + set(CMAKE_PROGRAM_PATH $(HOST_DIR)/usr/bin)\n\
> set(CMAKE_C_COMPILER $(CMAKE_TARGET_CC))\n\
> set(CMAKE_CXX_COMPILER $(CMAKE_TARGET_CXX))\n\
> + set(CMAKE_C_FLAGS \"$(CMAKE_TARGET_CFLAGS)\")\n\
> + set(CMAKE_CXX_FLAGS \"$(CMAKE_TARGET_CXXFLAGS)\")\n\
> set(CMAKE_FIND_ROOT_PATH $(STAGING_DIR))\n\
> set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\n\
> set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)\n\
>
> With those, I can successfully use the CMake toolchain file to build a
> Qt application against the Buildroot libraries.
>
> If you agree, could you merge those modifications into your patch ?
It'd be great if you could also add
set(CMAKE_INSTALL_SO_NO_EXE 0)
This is related to the executable permission of the shared libraries
installed by CMake. As explained in Modules/Platform/Linux.cmake, the
behaviour of CMake depends on the host system: on Debian systems, it
installs shared libraries without executable permissions, and on Fedora
systems it installs shared libraries with executable permissions.
In Buildroot, all shared libraries are installed with executable
permissions, and this fact is used to support stripping of shared
libraries in the target-finalize target of the main Makefile.
Therefore, we should not rely on CMake default behaviour, and instead
tell CMake what to do: set the executable permission on the installed
shared libraries. Which is what is done by setting the above variable.
For reference, this issue has also been raised on OpenEmbedded:
http://www.mail-archive.com/openembedded-devel at lists.openembedded.org/msg04736.html.
Thanks!
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2011-01-10 17:50 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-12 19:29 [Buildroot] [PATCH 0/4] Introducing CMAKETARGETS infrastructure Bjørn Forsman
2010-12-12 19:29 ` [Buildroot] [PATCH 1/4] Add CMAKETARGETS infrastructure for CMake packages Bjørn Forsman
2010-12-13 22:27 ` Samuel Martin
2010-12-14 11:13 ` Bjørn Forsman
2010-12-22 21:34 ` Samuel Martin
2010-12-23 7:46 ` Thomas Petazzoni
2010-12-23 8:46 ` Bjørn Forsman
2010-12-23 8:54 ` Thomas Petazzoni
2010-12-23 9:14 ` Bjørn Forsman
2011-01-07 17:17 ` Thomas Petazzoni
2011-01-08 23:44 ` Bjørn Forsman
2011-01-10 17:51 ` Thomas Petazzoni
2011-01-10 20:14 ` Bjørn Forsman
2010-12-12 19:29 ` [Buildroot] [PATCH 2/4] doc: add CMAKETARGETS documentation Bjørn Forsman
2010-12-12 19:29 ` [Buildroot] [PATCH 3/4] Makefile: generate CMake toolchain file in $(O) Bjørn Forsman
2010-12-13 22:27 ` Samuel Martin
2010-12-14 12:39 ` Bjørn Forsman
2010-12-22 21:32 ` Samuel Martin
2010-12-23 7:48 ` Thomas Petazzoni
2010-12-24 12:25 ` Samuel Martin
2010-12-23 9:04 ` Bjørn Forsman
2010-12-24 12:26 ` Samuel Martin
2011-01-07 17:15 ` Thomas Petazzoni
2011-01-08 23:42 ` Bjørn Forsman
2011-01-09 12:52 ` Bjørn Forsman
2011-01-09 14:08 ` Thomas Petazzoni
2011-01-10 17:50 ` Thomas Petazzoni [this message]
2011-01-10 18:30 ` Bjørn Forsman
2011-01-10 22:28 ` Thomas Petazzoni
2011-01-11 10:22 ` Thomas Petazzoni
2011-01-11 10:27 ` Thomas Petazzoni
2011-01-15 13:50 ` Bjørn Forsman
2010-12-12 19:29 ` [Buildroot] [PATCH 4/4] cdrkit: convert to CMAKETARGETS infrastructure Bjørn Forsman
2010-12-13 22:28 ` Samuel Martin
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=20110110185013.331f5af1@surf \
--to=thomas.petazzoni@free-electrons.com \
--cc=buildroot@busybox.net \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox