public inbox for crossgcc@sourceware.org
 help / color / mirror / Atom feed
* using crosstool ng for building win32 hosted cross compiler
@ 2009-04-26 20:57 Remy Bohmer
  2009-04-26 21:53 ` Yann E. MORIN
  0 siblings, 1 reply; 6+ messages in thread
From: Remy Bohmer @ 2009-04-26 20:57 UTC (permalink / raw)
  To: crossgcc; +Cc: Yann E. MORIN

Hello All,

I am currently using crosstool-ng to build a cross-toolchain for my
target (target=x86-bare, host=x86-linux, build=x86-linux)
Now I also need the same toolchain that can run on a Windows host
(target=x86-bare, host=x86-mingw, build=x86-linux)

Looking at the differences between the linux-hosted and the
win32/mingw-hosted toolchain, only the executables should be
different; libraries/headers/structure should be the same because both
toolchains need to deliver binaries for the same target.

Is there an lightweight way possible to make crosstool-ng build only
the win32 executables by using a mingw cross-compiler, and using the
linux-hosted-toolchain-build-results as starting point? If so, where
in the build process ct-ng performs could this be added?
I guess, as mingw cross-compiler the i586-mingw32msvc-gcc from Ubuntu
can be used...

Kind regards,

Remy

--
For unsubscribe information see http://sourceware.org/lists.html#faq

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: using crosstool ng for building win32 hosted cross compiler
  2009-04-26 20:57 using crosstool ng for building win32 hosted cross compiler Remy Bohmer
@ 2009-04-26 21:53 ` Yann E. MORIN
  2009-04-27 11:48   ` Remy Bohmer
  0 siblings, 1 reply; 6+ messages in thread
From: Yann E. MORIN @ 2009-04-26 21:53 UTC (permalink / raw)
  To: crossgcc; +Cc: Remy Bohmer

Hello Remy,
Hello All,

On Sunday 26 April 2009 22:57:25 Remy Bohmer wrote:
> I am currently using crosstool-ng to build a cross-toolchain for my
> target (target=x86-bare, host=x86-linux, build=x86-linux)
> Now I also need the same toolchain that can run on a Windows host
> (target=x86-bare, host=x86-mingw, build=x86-linux)

That's a canadian-cross, and crosstool-NG does not yet handle this
case.

But it should be fine with:
  host=x86-mingw, build=x86-mingw, target=x86-bare

Also, please note that 1.4.0 can now be used under Cygwin.
If you can't build under mingw, then maybe Cygwin would be a good
fallback/workaround...

> Is there an lightweight way possible to make crosstool-ng build only
> the win32 executables by using a mingw cross-compiler, and using the
> linux-hosted-toolchain-build-results as starting point? If so, where
> in the build process ct-ng performs could this be added?
> I guess, as mingw cross-compiler the i586-mingw32msvc-gcc from Ubuntu
> can be used...

Unfortunately, canadian-cross is not yet supported. I don't have enough
time to test it, but most of the infrastructure should already be here.
Most probably, a matter of:
- set "Paths and misc options" --> "Experimental" (to see next option)
- set "Toolchain options" --> "Type" --> "Canadian"
- set "Toolchain options" --> "Host system" --> "Tuple"

This will be like hunting for a dear treasure in a dungeon full of traps
and monsters, with only a one-hand sword, a few spells and a lot of good
will. May the dice be with you!

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: using crosstool ng for building win32 hosted cross compiler
  2009-04-26 21:53 ` Yann E. MORIN
@ 2009-04-27 11:48   ` Remy Bohmer
  2009-04-27 16:50     ` Yann E. MORIN
  0 siblings, 1 reply; 6+ messages in thread
From: Remy Bohmer @ 2009-04-27 11:48 UTC (permalink / raw)
  To: Yann E. MORIN; +Cc: crossgcc

Hello,

Thanks for your answer.

>> I am currently using crosstool-ng to build a cross-toolchain for my
>> target (target=x86-bare, host=x86-linux, build=x86-linux)
>> Now I also need the same toolchain that can run on a Windows host
>> (target=x86-bare, host=x86-mingw, build=x86-linux)
>
> That's a canadian-cross, and crosstool-NG does not yet handle this
> case.

I know... not yet!

>
> But it should be fine with:
>  host=x86-mingw, build=x86-mingw, target=x86-bare

And this is what I wanted to prevent....
I prefer building on Linux, one build system for all platforms and
tools; usually cross-compiling Linux stuff on a Windows box is just
pain. Unfortunately there are application engineers that are addicted
to Windows for whom I need a cross-compiler, so let's try to build one
on Linux...
I did it before (a few years ago) with my own set of dirty scripts
which needs severe update. So I wanted to get it all going inside
crosstool-ng. Back then I did it with first building the linux hosted
toolchain, and finally replace every executable by its Windows
counterpart by only building binutils and gcc for mingw. I was
wondering if such a route was still possible, and if so: how to
integrate that in crosstool-ng?

> Also, please note that 1.4.0 can now be used under Cygwin.
> If you can't build under mingw, then maybe Cygwin would be a good
> fallback/workaround...

Cygwin compiles slower and is annoying if make tooling is used that
works outside the cygwin environment (and that do not understand the
cygwin path-naming).

>> Is there an lightweight way possible to make crosstool-ng build only
>> the win32 executables by using a mingw cross-compiler, and using the
>> linux-hosted-toolchain-build-results as starting point? If so, where
>> in the build process ct-ng performs could this be added?
>> I guess, as mingw cross-compiler the i586-mingw32msvc-gcc from Ubuntu
>> can be used...
>
> Unfortunately, canadian-cross is not yet supported.

I know it is not supported, and I wanted to do something about the
'not yet' part...

> I don't have enough
> time to test it, but most of the infrastructure should already be here.
> Most probably, a matter of:
> - set "Paths and misc options" --> "Experimental" (to see next option)
> - set "Toolchain options" --> "Type" --> "Canadian"
> - set "Toolchain options" --> "Host system" --> "Tuple"

If I start using it, crosstool-ng complains about 'no-code'
So, where to start to implement it nicely?

> This will be like hunting for a dear treasure in a dungeon full of traps
> and monsters, with only a one-hand sword, a few spells and a lot of good
> will. May the dice be with you!

That is what compiling glibc on Windows inside mingw is as well ;-)
(Unless you walked that road before)


Kind Regards,

Remy

--
For unsubscribe information see http://sourceware.org/lists.html#faq

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: using crosstool ng for building win32 hosted cross compiler
  2009-04-27 11:48   ` Remy Bohmer
@ 2009-04-27 16:50     ` Yann E. MORIN
  0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2009-04-27 16:50 UTC (permalink / raw)
  To: crossgcc; +Cc: Remy Bohmer

On Monday 27 April 2009 13:48:48 Remy Bohmer wrote:
> 
> Hello,
> 
> Thanks for your answer.
> 
> >> I am currently using crosstool-ng to build a cross-toolchain for my
> >> target (target=x86-bare, host=x86-linux, build=x86-linux)
> >> Now I also need the same toolchain that can run on a Windows host
> >> (target=x86-bare, host=x86-mingw, build=x86-linux)
> >
> > That's a canadian-cross, and crosstool-NG does not yet handle this
> > case.
> 
> I know... not yet!
> 
> >
> > But it should be fine with:
> >  host=x86-mingw, build=x86-mingw, target=x86-bare
> 
> And this is what I wanted to prevent....
> I prefer building on Linux, one build system for all platforms and
> tools; usually cross-compiling Linux stuff on a Windows box is just
> pain. Unfortunately there are application engineers that are addicted
> to Windows for whom I need a cross-compiler, so let's try to build one
> on Linux...
> I did it before (a few years ago) with my own set of dirty scripts
> which needs severe update. So I wanted to get it all going inside
> crosstool-ng. Back then I did it with first building the linux hosted
> toolchain, and finally replace every executable by its Windows
> counterpart by only building binutils and gcc for mingw. I was
> wondering if such a route was still possible, and if so: how to
> integrate that in crosstool-ng?
> 
> > Also, please note that 1.4.0 can now be used under Cygwin.
> > If you can't build under mingw, then maybe Cygwin would be a good
> > fallback/workaround...
> 
> Cygwin compiles slower and is annoying if make tooling is used that
> works outside the cygwin environment (and that do not understand the
> cygwin path-naming).
> 
> >> Is there an lightweight way possible to make crosstool-ng build only
> >> the win32 executables by using a mingw cross-compiler, and using the
> >> linux-hosted-toolchain-build-results as starting point? If so, where
> >> in the build process ct-ng performs could this be added?
> >> I guess, as mingw cross-compiler the i586-mingw32msvc-gcc from Ubuntu
> >> can be used...
> >
> > Unfortunately, canadian-cross is not yet supported.
> 
> I know it is not supported, and I wanted to do something about the
> 'not yet' part...
> 
> > I don't have enough
> > time to test it, but most of the infrastructure should already be here.
> > Most probably, a matter of:
> > - set "Paths and misc options" --> "Experimental" (to see next option)
> > - set "Toolchain options" --> "Type" --> "Canadian"
> > - set "Toolchain options" --> "Host system" --> "Tuple"
> 
> If I start using it, crosstool-ng complains about 'no-code'
> So, where to start to implement it nicely?

(Sorry if the mailer mangles the following lines...)
# rep -nr -B7 -A2 -E 'No code|CT_TOOLCHAIN_TYPE' scripts/
--
scripts/crosstool-NG.sh.in-294-    # Determine build system if not set by the user
scripts/crosstool-NG.sh.in-295-    CT_Test "You did not specify the build system. That's OK, I can guess..." -z "${CT_BUILD}"
scripts/crosstool-NG.sh.in-296-    case "${CT_BUILD}" in
scripts/crosstool-NG.sh.in-297-        "") CT_BUILD=$("${CT_BUILD_PREFIX}gcc${CT_BUILD_SUFFIX}" -dumpmachine);;
scripts/crosstool-NG.sh.in-298-    esac
scripts/crosstool-NG.sh.in-299-
scripts/crosstool-NG.sh.in-300-    # Prepare mangling patterns to later modify BUILD and HOST (see below)
scripts/crosstool-NG.sh.in:301:    case "${CT_TOOLCHAIN_TYPE}" in
scripts/crosstool-NG.sh.in-302-        cross)
scripts/crosstool-NG.sh.in-303-            CT_HOST="${CT_BUILD}"
scripts/crosstool-NG.sh.in-304-            build_mangle="build_"
scripts/crosstool-NG.sh.in-305-            host_mangle="build_"
scripts/crosstool-NG.sh.in-306-            ;;
scripts/crosstool-NG.sh.in:307:        *)  CT_Abort "No code for '${CT_TOOLCHAIN_TYPE}' toolchain type!"
scripts/crosstool-NG.sh.in-308-            ;;
scripts/crosstool-NG.sh.in-309-    esac
--
scripts/crosstool-NG.sh.in-392-    # Carefully add paths in the order we want them:
scripts/crosstool-NG.sh.in-393-    #  - first try in ${CT_PREFIX_DIR}/bin
scripts/crosstool-NG.sh.in-394-    #  - then try in ${CT_CC_CORE_SHARED_PREFIX_DIR}/bin
scripts/crosstool-NG.sh.in-395-    #  - then try in ${CT_CC_CORE_STATIC_PREFIX_DIR}/bin
scripts/crosstool-NG.sh.in-396-    #  - fall back to searching user's PATH
scripts/crosstool-NG.sh.in-397-    # Of course, neither cross-native nor canadian can run on BUILD,
scripts/crosstool-NG.sh.in-398-    # so don't add those PATHs in this case...
scripts/crosstool-NG.sh.in:399:    case "${CT_TOOLCHAIN_TYPE}" in
scripts/crosstool-NG.sh.in-400-        cross)  export PATH="${CT_PREFIX_DIR}/bin:${CT_CC_CORE_SHARED_PREFIX_DIR}/bin:${CT_CC_CORE_STATIC_PREFIX_DIR}/bin:${PATH}";;
scripts/crosstool-NG.sh.in-401-        *)  ;;

Lines 307 and 401 seem like good candidates to start with.

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: using crosstool ng for building win32 hosted cross compiler
  2009-08-02 10:15 ` Remy Bohmer
@ 2009-08-02 16:57   ` Yann E. MORIN
  0 siblings, 0 replies; 6+ messages in thread
From: Yann E. MORIN @ 2009-08-02 16:57 UTC (permalink / raw)
  To: crossgcc; +Cc: Remy Bohmer, Björn Schneider, Bart van der Meulen

On Sunday 02 August 2009 12:15:23 Remy Bohmer wrote:
> 2009/8/2 Björn Schneider <brogon@palandor.net>:
> > I'd like to ask you, whether you had success in bribing crosstool-ng
> > into building win32-runnable crosscompilers?
> Well, my colleague (Bart van der Meulen) has been working on it and he
> has posted patches for getting this to work.
> Unfortunately, for some unknown reason, these patches were ignored by
> the mailing-list server,

Not too sure about the issue, as I don't own the list. What's sure is that
HTML messages are dropped. Maybe some encodings are dropped too. There's
currently no size-limit (or it is high enough).

> but the crosstool-ng maintainer (Yann E. 
> MORIN) has received them, and I thought they were part of the latest
> mercurial tree already. If not, you could ask Bart to assist you ;-)

Yes, they are in! Just clone the tree, and you'll get canadian support.
Note though that this is the development tree, and no release has yet
been done with this feature, so there might yet be some quirks to fix...

> > *sigh* why can't it be alike on every system?--The crosscompiler was
> > built on my Linux box in about 30 min. (15 configuration & downloads, 15
> > compiling). :-/
> Well, you want to run it on Windows... Doesn't that explain enough? ;-))))

Hehe! ;-)

> The current method to build a Windows hosted cross-compiler is to
> build it on Linux.

Seems so, yes. I don't do windows, unless I have a gun pointed onto my
forehead, so I am not really of any help in this domain... Sorry. :-(

> > Anyway, did you have any success?
> I did not put much time in it, Bart did an he has it working.

Yes, Bart told me he successfully build on Linux a mingw-hosted
cross-compiler for (can't remember the target).

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: using crosstool ng for building win32 hosted cross compiler
       [not found] <4A75028D.8050100@palandor.net>
@ 2009-08-02 10:15 ` Remy Bohmer
  2009-08-02 16:57   ` Yann E. MORIN
  0 siblings, 1 reply; 6+ messages in thread
From: Remy Bohmer @ 2009-08-02 10:15 UTC (permalink / raw)
  To: Björn Schneider; +Cc: Bart van der Meulen, crossgcc

Hi Björn,

(added CC: Cross-GCC-Mailinglist + Bart van der Meulen)

2009/8/2 Björn Schneider <brogon@palandor.net>:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello!
>
> I'd like to ask you, whether you had success in bribing crosstool-ng
> into building win32-runnable crosscompilers?

Well, my colleague (Bart van der Meulen) has been working on it and he
has posted patches for getting this to work.
Unfortunately, for some unknown reason, these patches were ignored by
the mailing-list server, but the crosstool-ng maintainer (Yann E.
MORIN) has received them, and I thought they were part of the latest
mercurial tree already. If not, you could ask Bart to assist you ;-)

> Currently I face the very same problem: I need a cross-compiler for MIPS
> (little endian, softfloat, 'bare-metal') running on Windows.
>    Crosstools-ng won't work in MSYS/MinGW and I have no idea how to get
> Cygwin Make to properly work with MinGW GCC. They just have a quite
> divergent view of how a "symbolic link" has to work.
>    Building completely in Cygwin defies my aim to get rid of the
> cygwin1.dll, which caused me some infuriating trouble if the user has an
> older or newer version of the Cygwin emulation installed. So my last
> resort is to 'simply' cross compile the cross compiler on Linux.
>
> *sigh* why can't it be alike on every system?--The crosscompiler was
> built on my Linux box in about 30 min. (15 configuration & downloads, 15
> compiling). :-/

Well, you want to run it on Windows... Doesn't that explain enough? ;-))))
The current method to build a Windows hosted cross-compiler is to
build it on Linux.

> Anyway, did you have any success?

I did not put much time in it, Bart did an he has it working.


Kind Regards,

Remy

--
For unsubscribe information see http://sourceware.org/lists.html#faq

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-08-02 16:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-26 20:57 using crosstool ng for building win32 hosted cross compiler Remy Bohmer
2009-04-26 21:53 ` Yann E. MORIN
2009-04-27 11:48   ` Remy Bohmer
2009-04-27 16:50     ` Yann E. MORIN
     [not found] <4A75028D.8050100@palandor.net>
2009-08-02 10:15 ` Remy Bohmer
2009-08-02 16:57   ` Yann E. MORIN

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