From: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
To: bartvdrmeulen@gmail.com
Cc: crossgcc@sourceware.org
Subject: Re: [patch 4/4] Implement canadian build option
Date: Fri, 19 Jun 2009 16:27:00 -0000 [thread overview]
Message-ID: <200906191827.17961.yann.morin.1998@anciens.enib.fr> (raw)
In-Reply-To: <20090610113222.856924123@gmail.com>
Bart,
See comments inlined below...
On Wednesday 10 June 2009 12:12:34 Bart vd. Meulen wrote:
> Add implementation for a candadian build option already
> present in crosstool in order to build a cross-compiler
> where build != host != target
>
> The included sample uses a pre-installed mingw build-host compiler and a
> build-target compiler (that has been build with Crosstool-ng, using the
> i686-ntpl-linux-gnu example has basis)
> The resulting cross compiler runs on a mingw host and builds for a
> i686-linux-gnu target.
>
> Signed-off-by: Bart van der Meulen <bartvdrmeulen@gmail.com>
> ---
> config/toolchain.in | 2
> samples/i686-none-linux-gnu/crosstool.config | 353 +++++++++++++++++++++++++++
> samples/i686-none-linux-gnu/reported.by | 3
> scripts/build/cc/gcc.sh | 8
> scripts/build/companion_libs/mpfr.sh | 3
> scripts/crosstool-NG.sh.in | 17 +
> 6 files changed, 381 insertions(+), 5 deletions(-)
>
> Index: crosstool-ng/scripts/crosstool-NG.sh.in
> ===================================================================
> --- crosstool-ng.orig/scripts/crosstool-NG.sh.in 2009-06-08 15:30:40.000000000 +0200
> +++ crosstool-ng/scripts/crosstool-NG.sh.in 2009-06-08 15:30:41.000000000 +0200
> @@ -202,8 +202,10 @@ CT_DoExecLog ALL mkdir -p "${CT_BUILD_DI
> CT_DoExecLog ALL mkdir -p "${CT_CONFIG_DIR}"
> CT_DoExecLog ALL mkdir -p "${CT_INSTALL_DIR}"
> CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}"
> -CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
> -CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
> +if [ -z "${CT_CANADIAN}" ]; then
> + CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
> + CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
> +fi
>
> # Only create the state dir if asked for a restartable build
> [ -n "${CT_DEBUG_CT_SAVE_STEPS}" ] && CT_DoExecLog ALL mkdir -p "${CT_STATE_DIR}"
> @@ -303,10 +305,18 @@ if [ -z "${CT_RESTART}" ]; then
>
> # Prepare mangling patterns to later modify BUILD and HOST (see below)
> case "${CT_TOOLCHAIN_TYPE}" in
> + canadian)
> + CT_REAL_TARGET=${TARGET}
CT_REAL_TARGET is used nowhere in the code. What was it for?
> + build_mangle="build_"
> + host_mangle="host_"
> + install_build_tools_for="BUILD HOST TARGET"
Yep, nice!
> + ;;
> +
Useless empty line, doesn't mind.
> cross)
> CT_HOST="${CT_BUILD}"
> build_mangle="build_"
> host_mangle="build_"
> + install_build_tools_for="BUILD HOST"
> ;;
> *) CT_Abort "No code for '${CT_TOOLCHAIN_TYPE}' toolchain type!"
> ;;
> @@ -334,7 +344,7 @@ if [ -z "${CT_RESTART}" ]; then
> # cross-tools for those mangled tuples.
> CT_DoLog DEBUG "Making build system tools available"
> CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}/buildtools"
> - for m in BUILD HOST; do
> + for m in ${install_build_tools_for}; do
> r="CT_REAL_${m}"
> v="CT_${m}"
> p="CT_${m}_PREFIX"
> @@ -402,6 +412,7 @@ if [ -z "${CT_RESTART}" ]; then
> # so don't add those PATHs in this case...
> case "${CT_TOOLCHAIN_TYPE}" in
> cross) export PATH="${CT_PREFIX_DIR}/buildtools:${CT_PREFIX_DIR}/bin:${CT_CC_CORE_SHARED_PREFIX_DIR}/bin:${CT_CC_CORE_STATIC_PREFIX_DIR}/bin:${PATH}";;
> + canadian) export PATH="${CT_PREFIX_DIR}/buildtools:${PATH}";;
Good!
> *) ;;
> esac
>
> Index: crosstool-ng/config/toolchain.in
> ===================================================================
> --- crosstool-ng.orig/config/toolchain.in 2009-06-08 15:30:35.000000000 +0200
> +++ crosstool-ng/config/toolchain.in 2009-06-08 15:30:41.000000000 +0200
> @@ -123,7 +123,7 @@ config CROSS_NATIVE
>
> config CANADIAN
> bool
> - prompt "Canadian (NO CODE!) (EXPERIMENTAL)"
> + prompt "Canadian (EXPERIMENTAL)"
> depends on EXPERIMENTAL
> help
> Build a canadian-toolchain.
> Index: crosstool-ng/scripts/build/cc/gcc.sh
> ===================================================================
> --- crosstool-ng.orig/scripts/build/cc/gcc.sh 2009-06-08 15:30:35.000000000 +0200
> +++ crosstool-ng/scripts/build/cc/gcc.sh 2009-06-08 15:30:41.000000000 +0200
> @@ -45,6 +45,10 @@ do_cc_extract() {
> #------------------------------------------------------------------------------
> # Core gcc pass 1
> do_cc_core_pass_1() {
> + # If we're building a candadian compiler no use to build the CC
Typo: "canadian";
s/CC/core compiler/
> + # core compiler, we're not using it
> + [ -n "${CT_CANADIAN}" ] && return 0
> +
> # If we're building for bare metal, build the static core gcc,
> # with libgcc.
> # In case we're not bare metal, and we're NPTL, build the static core gcc.
> @@ -58,6 +62,10 @@ do_cc_core_pass_1() {
>
> # Core gcc pass 2
> do_cc_core_pass_2() {
> + # If we're building a candadian compiler no use to build the CC
Ditto, ditto.
> + # core compiler, we're not using it
> + [ -n "${CT_CANADIAN}" ] && return 0
> +
> # In case we're building for bare metal, do nothing, we already have
> # our compiler.
> # In case we're NPTL, build the shared core gcc and the target libgcc.
> Index: crosstool-ng/scripts/build/companion_libs/mpfr.sh
> ===================================================================
> --- crosstool-ng.orig/scripts/build/companion_libs/mpfr.sh 2009-06-08 15:30:35.000000000 +0200
> +++ crosstool-ng/scripts/build/companion_libs/mpfr.sh 2009-06-08 15:30:41.000000000 +0200
> @@ -64,7 +64,8 @@ do_mpfr() {
> mpfr_opt=
> # Under Cygwin, we can't build a thread-safe library
> case "${CT_HOST}" in
> - *-cygwin) mpfr_opt="--disable-thread-safe";;
> + *cygwin*) mpfr_opt="--disable-thread-safe";;
> + *mingw*) mpfr_opt="--disable-thread-safe";;
> *) mpfr_opt="--enable-thread-safe";;
> esac
>
This chunk should have gone in a separate patch, to prepare for that one.
Anyway, already applied this chunk as-is.
Overall, looks good. I'l wait for your answer on CT_REAL_TARGET before
I commit.
Oh, by the way... It just occured to me that your original messages didn't
make it to the list. :-( Did you get an error message about this? If so,
what was the reason?
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +0/33 662376056 | Software Designer | \ / CAMPAIGN | ___ |
| --==< ^_^ >==-- `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
`------------------------------^-------^------------------^--------------------'
--
For unsubscribe information see http://sourceware.org/lists.html#faq
next prev parent reply other threads:[~2009-06-19 16:27 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20090610101230.342741672@gmail.com>
2009-06-10 11:53 ` [patch 0/4] Add initial support for windows hosted canadian cross-compiler to CT-NG Yann E. MORIN
[not found] ` <20090610113222.461816414@gmail.com>
2009-06-19 16:14 ` [patch 1/4] No need to create debugroot dir when not configured Yann E. MORIN
[not found] ` <20090610113222.553100012@gmail.com>
2009-06-19 16:15 ` [patch 2/4] Only create sym-link from sysroot/lib directory when using syslink Yann E. MORIN
[not found] ` <20090610113222.717687247@gmail.com>
2009-06-19 16:17 ` [patch 3/4] collects the tools needed to build a crosscompiler in a seperate folder Yann E. MORIN
[not found] ` <20090610113222.856924123@gmail.com>
2009-06-19 16:27 ` Yann E. MORIN [this message]
2009-06-22 18:08 ` [patch 4/4] Implement canadian build option Bart van der Meulen
2009-06-24 13:06 ` Bart van der Meulen
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=200906191827.17961.yann.morin.1998@anciens.enib.fr \
--to=yann.morin.1998@anciens.enib.fr \
--cc=bartvdrmeulen@gmail.com \
--cc=crossgcc@sourceware.org \
/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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).