public inbox for crossgcc@sourceware.org
 help / color / mirror / Atom feed
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

  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).