public inbox for crossgcc@sourceware.org
 help / color / mirror / Atom feed
* Announcing `autocrossgen'
@ 2014-10-23  2:58 Bryan Hundven
  2014-10-23  7:36 ` Per Arnold Blaasmo
  2014-11-10  2:10 ` Bryan Hundven
  0 siblings, 2 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23  2:58 UTC (permalink / raw)
  To: crossgcc maillist

Hello list,

Out of necessity for a tool to build a cross-compiler that is more
friendly to developers, I started this project. I've posted it to
github so that it is easy for others to contribute to:

https://github.com/bhundven/autocrossgen

If you'd like to contribute, check out the issues and milestones:
https://github.com/bhundven/autocrossgen/issues
https://github.com/bhundven/autocrossgen/milestones

Just fork the code, make changes to your tree, and open a pull request.

Enjoy!

-Bryan

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  2:58 Announcing `autocrossgen' Bryan Hundven
@ 2014-10-23  7:36 ` Per Arnold Blaasmo
  2014-10-23  7:41   ` Bryan Hundven
  2014-11-10  2:10 ` Bryan Hundven
  1 sibling, 1 reply; 12+ messages in thread
From: Per Arnold Blaasmo @ 2014-10-23  7:36 UTC (permalink / raw)
  To: crossgcc

On 23. okt. 2014 04:58, Bryan Hundven wrote:
> Hello list,
> 
> Out of necessity for a tool to build a cross-compiler that is more
> friendly to developers, I started this project. I've posted it to
> github so that it is easy for others to contribute to:
> 
> https://github.com/bhundven/autocrossgen
> 
> If you'd like to contribute, check out the issues and milestones:
> https://github.com/bhundven/autocrossgen/issues
> https://github.com/bhundven/autocrossgen/milestones
> 
> Just fork the code, make changes to your tree, and open a pull request.
> 
> Enjoy!
> 
> -Bryan
> 
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
> 
> 
Hi Bryan,

"more friendly" is not a very concrete term, can you be more specific
and maybe make a comparison with i.e. crosstool-ng.

I appreciate the initiative, but what to know more :-)

Regards
Per A.


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

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

* Re: Announcing `autocrossgen'
  2014-10-23  7:36 ` Per Arnold Blaasmo
@ 2014-10-23  7:41   ` Bryan Hundven
  2014-10-23  7:58     ` Bryan Hundven
                       ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23  7:41 UTC (permalink / raw)
  To: per-arnold.blaasmo; +Cc: crossgcc maillist

Per, List,

To get context correct "more friendly to developers". So say you are
working on binutils, gcc, glibc, musl-libc, etc...

If you are using crosstool-ng, you have to save steps if you want to
not build the prereqs for building gcc (say you are working on gcc
specifically) over and over again. autocrossgen's build system uses
GNU/Make rather then Bash. So you can just delete the build/gcc*, type
make and the build will leave off at configuring and building gcc
instead of starting the whole build process over from scratch.

-Bryan

On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
<per-arnold.blaasmo@atmel.com> wrote:
> On 23. okt. 2014 04:58, Bryan Hundven wrote:
>> Hello list,
>>
>> Out of necessity for a tool to build a cross-compiler that is more
>> friendly to developers, I started this project. I've posted it to
>> github so that it is easy for others to contribute to:
>>
>> https://github.com/bhundven/autocrossgen
>>
>> If you'd like to contribute, check out the issues and milestones:
>> https://github.com/bhundven/autocrossgen/issues
>> https://github.com/bhundven/autocrossgen/milestones
>>
>> Just fork the code, make changes to your tree, and open a pull request.
>>
>> Enjoy!
>>
>> -Bryan
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>
>>
> Hi Bryan,
>
> "more friendly" is not a very concrete term, can you be more specific
> and maybe make a comparison with i.e. crosstool-ng.
>
> I appreciate the initiative, but what to know more :-)
>
> Regards
> Per A.
>
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  7:41   ` Bryan Hundven
@ 2014-10-23  7:58     ` Bryan Hundven
  2014-10-23  8:18     ` Nikita Orlov
  2014-10-23 18:49     ` Thomas Petazzoni
  2 siblings, 0 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23  7:58 UTC (permalink / raw)
  To: per-arnold.blaasmo; +Cc: crossgcc maillist

Per, List,

On Thu, Oct 23, 2014 at 12:41 AM, Bryan Hundven <bryanhundven@gmail.com> wrote:
> Per, List,
>
> To get context correct "more friendly to developers". So say you are
> working on binutils, gcc, glibc, musl-libc, etc...
>
> If you are using crosstool-ng, you have to save steps if you want to
> not build the prereqs for building gcc (say you are working on gcc
> specifically) over and over again. autocrossgen's build system uses
> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
> make and the build will leave off at configuring and building gcc
> instead of starting the whole build process over from scratch.
>
> -Bryan

Whoops, I totally top-posted there. Sorry about that!

I might also mention that the project is in an early stage. I just got
the first toolchain to build from it tonight
(arm-unknown-linux-gnueabi) and built kernel 3.18-rc1 with it.

From a normal user's perspective, it is much more of an advanced tool.
I find that if you are looking for a simple tool to build
cross-compilers that supports a lot of different features, stick with
crosstool-ng.

It may be a while until autocrossgen gets features that ct-ng has.
ACG will not have support for kconfig, instead it will just use
autoconf's 'configure' script to provide an interface for setting
options (most of which still needs to be implemented).

Plenty of work to be done, and definitely not a drop-in replacement
for crosstool-ng.

So, simpler for developers, nightmare for normal users ;)

-Bryan

> On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
> <per-arnold.blaasmo@atmel.com> wrote:
>> On 23. okt. 2014 04:58, Bryan Hundven wrote:
>>> Hello list,
>>>
>>> Out of necessity for a tool to build a cross-compiler that is more
>>> friendly to developers, I started this project. I've posted it to
>>> github so that it is easy for others to contribute to:
>>>
>>> https://github.com/bhundven/autocrossgen
>>>
>>> If you'd like to contribute, check out the issues and milestones:
>>> https://github.com/bhundven/autocrossgen/issues
>>> https://github.com/bhundven/autocrossgen/milestones
>>>
>>> Just fork the code, make changes to your tree, and open a pull request.
>>>
>>> Enjoy!
>>>
>>> -Bryan
>>>
>>> --
>>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>>
>>>
>> Hi Bryan,
>>
>> "more friendly" is not a very concrete term, can you be more specific
>> and maybe make a comparison with i.e. crosstool-ng.
>>
>> I appreciate the initiative, but what to know more :-)
>>
>> Regards
>> Per A.
>>
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  7:41   ` Bryan Hundven
  2014-10-23  7:58     ` Bryan Hundven
@ 2014-10-23  8:18     ` Nikita Orlov
  2014-10-23  8:27       ` Bryan Hundven
  2014-10-23  9:18       ` Bryan Hundven
  2014-10-23 18:49     ` Thomas Petazzoni
  2 siblings, 2 replies; 12+ messages in thread
From: Nikita Orlov @ 2014-10-23  8:18 UTC (permalink / raw)
  To: Bryan Hundven, per-arnold.blaasmo; +Cc: crossgcc maillist

Hi!

Is it possible to build toolchain for arm, that runs on same arm, but build toolchain on x86?

23.10.2014, 11:41, "Bryan Hundven" <bryanhundven@gmail.com>:
> Per, List,
>
> To get context correct "more friendly to developers". So say you are
> working on binutils, gcc, glibc, musl-libc, etc...
>
> If you are using crosstool-ng, you have to save steps if you want to
> not build the prereqs for building gcc (say you are working on gcc
> specifically) over and over again. autocrossgen's build system uses
> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
> make and the build will leave off at configuring and building gcc
> instead of starting the whole build process over from scratch.
>
> -Bryan
>
> On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
> <per-arnold.blaasmo@atmel.com> wrote:
>
>> б On 23. okt. 2014 04:58, Bryan Hundven wrote:
>>> б Hello list,
>>>
>>> б Out of necessity for a tool to build a cross-compiler that is more
>>> б friendly to developers, I started this project. I've posted it to
>>> б github so that it is easy for others to contribute to:
>>>
>>> б https://github.com/bhundven/autocrossgen
>>>
>>> б If you'd like to contribute, check out the issues and milestones:
>>> б https://github.com/bhundven/autocrossgen/issues
>>> б https://github.com/bhundven/autocrossgen/milestones
>>>
>>> б Just fork the code, make changes to your tree, and open a pull request.
>>>
>>> б Enjoy!
>>>
>>> б -Bryan
>>>
>>> б --
>>> б For unsubscribe information see http://sourceware.org/lists.html#faq
>> б Hi Bryan,
>>
>> б "more friendly" is not a very concrete term, can you be more specific
>> б and maybe make a comparison with i.e. crosstool-ng.
>>
>> б I appreciate the initiative, but what to know more :-)
>>
>> б Regards
>> б Per A.
>>
>> б --
>> б For unsubscribe information see http://sourceware.org/lists.html#faq
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq

--б 
Nikita Orlov
Skype: nik_stet
QQ: 2717846083

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  8:18     ` Nikita Orlov
@ 2014-10-23  8:27       ` Bryan Hundven
  2014-10-23  9:07         ` Nikita Orlov
  2014-10-23  9:18       ` Bryan Hundven
  1 sibling, 1 reply; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23  8:27 UTC (permalink / raw)
  To: Nikita Orlov; +Cc: per-arnold.blaasmo, crossgcc maillist

Nikita, list,

On Thu, Oct 23, 2014 at 1:18 AM, Nikita Orlov <nikitos1550@yandex.ru> wrote:
> Hi!
>
> Is it possible to build toolchain for arm, that runs on same arm, but build toolchain on x86?

Currently autocrossgen only builds cross-compilers. It doesn't
currently support native compilers. I am not sure that I will ever
support native compilers, hence the 'cross' in the name of the
project.

-Bryan

P.S. try not to top-post


> 23.10.2014, 11:41, "Bryan Hundven" <bryanhundven@gmail.com>:
>> Per, List,
>>
>> To get context correct "more friendly to developers". So say you are
>> working on binutils, gcc, glibc, musl-libc, etc...
>>
>> If you are using crosstool-ng, you have to save steps if you want to
>> not build the prereqs for building gcc (say you are working on gcc
>> specifically) over and over again. autocrossgen's build system uses
>> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
>> make and the build will leave off at configuring and building gcc
>> instead of starting the whole build process over from scratch.
>>
>> -Bryan
>>
>> On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
>> <per-arnold.blaasmo@atmel.com> wrote:
>>
>>>  On 23. okt. 2014 04:58, Bryan Hundven wrote:
>>>>  Hello list,
>>>>
>>>>  Out of necessity for a tool to build a cross-compiler that is more
>>>>  friendly to developers, I started this project. I've posted it to
>>>>  github so that it is easy for others to contribute to:
>>>>
>>>>  https://github.com/bhundven/autocrossgen
>>>>
>>>>  If you'd like to contribute, check out the issues and milestones:
>>>>  https://github.com/bhundven/autocrossgen/issues
>>>>  https://github.com/bhundven/autocrossgen/milestones
>>>>
>>>>  Just fork the code, make changes to your tree, and open a pull request.
>>>>
>>>>  Enjoy!
>>>>
>>>>  -Bryan
>>>>
>>>>  --
>>>>  For unsubscribe information see http://sourceware.org/lists.html#faq
>>>  Hi Bryan,
>>>
>>>  "more friendly" is not a very concrete term, can you be more specific
>>>  and maybe make a comparison with i.e. crosstool-ng.
>>>
>>>  I appreciate the initiative, but what to know more :-)
>>>
>>>  Regards
>>>  Per A.
>>>
>>>  --
>>>  For unsubscribe information see http://sourceware.org/lists.html#faq
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>
> --
> Nikita Orlov
> Skype: nik_stet
> QQ: 2717846083

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  8:27       ` Bryan Hundven
@ 2014-10-23  9:07         ` Nikita Orlov
  2014-10-23 17:40           ` ANDY KENNEDY
  0 siblings, 1 reply; 12+ messages in thread
From: Nikita Orlov @ 2014-10-23  9:07 UTC (permalink / raw)
  To: Bryan Hundven; +Cc: per-arnold.blaasmo, crossgcc maillist

I see. Thanks! Maybe you can advice me some tool for such task?

23.10.2014, 12:27, "Bryan Hundven" <bryanhundven@gmail.com>:
> Nikita, list,
>
> On Thu, Oct 23, 2014 at 1:18 AM, Nikita Orlov <nikitos1550@yandex.ru> wrote:
>
>> б Hi!
>>
>> б Is it possible to build toolchain for arm, that runs on same arm, but build toolchain on x86?
>
> Currently autocrossgen only builds cross-compilers. It doesn't
> currently support native compilers. I am not sure that I will ever
> support native compilers, hence the 'cross' in the name of the
> project.
>
> -Bryan
>
> P.S. try not to top-post
>
>> б 23.10.2014, 11:41, "Bryan Hundven" <bryanhundven@gmail.com>:
>>> б Per, List,
>>>
>>> б To get context correct "more friendly to developers". So say you are
>>> б working on binutils, gcc, glibc, musl-libc, etc...
>>>
>>> б If you are using crosstool-ng, you have to save steps if you want to
>>> б not build the prereqs for building gcc (say you are working on gcc
>>> б specifically) over and over again. autocrossgen's build system uses
>>> б GNU/Make rather then Bash. So you can just delete the build/gcc*, type
>>> б make and the build will leave off at configuring and building gcc
>>> б instead of starting the whole build process over from scratch.
>>>
>>> б -Bryan
>>>
>>> б On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
>>> б <per-arnold.blaasmo@atmel.com> wrote:
>>>> б б On 23. okt. 2014 04:58, Bryan Hundven wrote:
>>>>> б б Hello list,
>>>>>
>>>>> б б Out of necessity for a tool to build a cross-compiler that is more
>>>>> б б friendly to developers, I started this project. I've posted it to
>>>>> б б github so that it is easy for others to contribute to:
>>>>>
>>>>> б б https://github.com/bhundven/autocrossgen
>>>>>
>>>>> б б If you'd like to contribute, check out the issues and milestones:
>>>>> б б https://github.com/bhundven/autocrossgen/issues
>>>>> б б https://github.com/bhundven/autocrossgen/milestones
>>>>>
>>>>> б б Just fork the code, make changes to your tree, and open a pull request.
>>>>>
>>>>> б б Enjoy!
>>>>>
>>>>> б б -Bryan
>>>>>
>>>>> б б --
>>>>> б б For unsubscribe information see http://sourceware.org/lists.html#faq
>>>> б б Hi Bryan,
>>>>
>>>> б б "more friendly" is not a very concrete term, can you be more specific
>>>> б б and maybe make a comparison with i.e. crosstool-ng.
>>>>
>>>> б б I appreciate the initiative, but what to know more :-)
>>>>
>>>> б б Regards
>>>> б б Per A.
>>>>
>>>> б б --
>>>> б б For unsubscribe information see http://sourceware.org/lists.html#faq
>>> б --
>>> б For unsubscribe information see http://sourceware.org/lists.html#faq
>> б --
>> б Nikita Orlov
>> б Skype: nik_stet
>> б QQ: 2717846083
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq

--б 
Nikita Orlov
Skype: nik_stet
QQ: 2717846083

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  8:18     ` Nikita Orlov
  2014-10-23  8:27       ` Bryan Hundven
@ 2014-10-23  9:18       ` Bryan Hundven
  1 sibling, 0 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23  9:18 UTC (permalink / raw)
  To: Nikita Orlov; +Cc: per-arnold.blaasmo, crossgcc maillist

On Thu, Oct 23, 2014 at 1:18 AM, Nikita Orlov <nikitos1550@yandex.ru> wrote:
> Hi!
>
> Is it possible to build toolchain for arm, that runs on same arm, but build toolchain on x86?

Maybe I was confused. You're building the toolchain on x86, but it
will run on arm and target arm.

I still don't think the autocrossgen is for you. Might want to ask on
the gcc-help mailing list.

-Bryan

> 23.10.2014, 11:41, "Bryan Hundven" <bryanhundven@gmail.com>:
>> Per, List,
>>
>> To get context correct "more friendly to developers". So say you are
>> working on binutils, gcc, glibc, musl-libc, etc...
>>
>> If you are using crosstool-ng, you have to save steps if you want to
>> not build the prereqs for building gcc (say you are working on gcc
>> specifically) over and over again. autocrossgen's build system uses
>> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
>> make and the build will leave off at configuring and building gcc
>> instead of starting the whole build process over from scratch.
>>
>> -Bryan
>>
>> On Thu, Oct 23, 2014 at 12:35 AM, Per Arnold Blaasmo
>> <per-arnold.blaasmo@atmel.com> wrote:
>>
>>>  On 23. okt. 2014 04:58, Bryan Hundven wrote:
>>>>  Hello list,
>>>>
>>>>  Out of necessity for a tool to build a cross-compiler that is more
>>>>  friendly to developers, I started this project. I've posted it to
>>>>  github so that it is easy for others to contribute to:
>>>>
>>>>  https://github.com/bhundven/autocrossgen
>>>>
>>>>  If you'd like to contribute, check out the issues and milestones:
>>>>  https://github.com/bhundven/autocrossgen/issues
>>>>  https://github.com/bhundven/autocrossgen/milestones
>>>>
>>>>  Just fork the code, make changes to your tree, and open a pull request.
>>>>
>>>>  Enjoy!
>>>>
>>>>  -Bryan
>>>>
>>>>  --
>>>>  For unsubscribe information see http://sourceware.org/lists.html#faq
>>>  Hi Bryan,
>>>
>>>  "more friendly" is not a very concrete term, can you be more specific
>>>  and maybe make a comparison with i.e. crosstool-ng.
>>>
>>>  I appreciate the initiative, but what to know more :-)
>>>
>>>  Regards
>>>  Per A.
>>>
>>>  --
>>>  For unsubscribe information see http://sourceware.org/lists.html#faq
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>
> --
> Nikita Orlov
> Skype: nik_stet
> QQ: 2717846083

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

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

* RE: Announcing `autocrossgen'
  2014-10-23  9:07         ` Nikita Orlov
@ 2014-10-23 17:40           ` ANDY KENNEDY
  0 siblings, 0 replies; 12+ messages in thread
From: ANDY KENNEDY @ 2014-10-23 17:40 UTC (permalink / raw)
  To: 'Nikita Orlov', Bryan Hundven
  Cc: per-arnold.blaasmo, crossgcc maillist

> -----Original Message-----
> From: crossgcc-owner@sourceware.org [mailto:crossgcc-owner@sourceware.org] On Behalf Of Nikita Orlov
> Sent: Thursday, October 23, 2014 4:07 AM
> To: Bryan Hundven
> Cc: per-arnold.blaasmo@atmel.com; crossgcc maillist
> Subject: Re: Announcing `autocrossgen'
> 
> I see. Thanks! Maybe you can advice me some tool for such task?
> 

Nikita,

Assuming your question was:

Can you give me advice on a tool that would build me a native toolchain
for Arm?

The answer to this would be:  Currently, there is nothing that will do
this for you.  Older versions of BuildRoot (pre 2013) would build you a
toolchain for the target, but this support has been removed.  Having
said this, you can build gcc against your cross-toolchain and make it
work the right way for the target.  At that point, it would be a great
idea for you to natively build (assuming the cross-built gcc you have
works) gcc again for the target (this will ensure that gcc has the
correct paths associated with it - which can be a problem when building
some things).

If your target is supported in BuildRoot-2012.02, then you should be
able to select legacy options and choose to build each component of a
toolchain through the menu options.

Good luck!

Andy

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  7:41   ` Bryan Hundven
  2014-10-23  7:58     ` Bryan Hundven
  2014-10-23  8:18     ` Nikita Orlov
@ 2014-10-23 18:49     ` Thomas Petazzoni
  2014-10-23 19:50       ` Bryan Hundven
  2 siblings, 1 reply; 12+ messages in thread
From: Thomas Petazzoni @ 2014-10-23 18:49 UTC (permalink / raw)
  To: Bryan Hundven; +Cc: per-arnold.blaasmo, crossgcc maillist

Dear Bryan Hundven,

On Thu, 23 Oct 2014 00:41:31 -0700, Bryan Hundven wrote:

> If you are using crosstool-ng, you have to save steps if you want to
> not build the prereqs for building gcc (say you are working on gcc
> specifically) over and over again. autocrossgen's build system uses
> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
> make and the build will leave off at configuring and building gcc
> instead of starting the whole build process over from scratch.

If all what you want is to be able to restart the build of the
toolchain like you say, why not give a try to Buildroot
(http://buildroot.org) ? It's written entirely in make, and works
exactly like you say: if you want to restart the build only of one
specific component, you just do:

	make gcc-rebuild

See also
http://buildroot.org/downloads/manual/manual.html#_advanced_usage and
specifically the part "8.11.6. Using Buildroot during development".

Buildroot already supports uClibc, (e)glibc and musl, for a wide range
of architectures.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

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

* Re: Announcing `autocrossgen'
  2014-10-23 18:49     ` Thomas Petazzoni
@ 2014-10-23 19:50       ` Bryan Hundven
  0 siblings, 0 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-10-23 19:50 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Per Arnold Blåsmo, crossgcc maillist

Thomas,

On Thu, Oct 23, 2014 at 11:49 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Bryan Hundven,
>
> On Thu, 23 Oct 2014 00:41:31 -0700, Bryan Hundven wrote:
>
>> If you are using crosstool-ng, you have to save steps if you want to
>> not build the prereqs for building gcc (say you are working on gcc
>> specifically) over and over again. autocrossgen's build system uses
>> GNU/Make rather then Bash. So you can just delete the build/gcc*, type
>> make and the build will leave off at configuring and building gcc
>> instead of starting the whole build process over from scratch.
>
> If all what you want is to be able to restart the build of the
> toolchain like you say, why not give a try to Buildroot
> (http://buildroot.org) ? It's written entirely in make, and works
> exactly like you say: if you want to restart the build only of one
> specific component, you just do:
>
>         make gcc-rebuild
>
> See also
> http://buildroot.org/downloads/manual/manual.html#_advanced_usage and
> specifically the part "8.11.6. Using Buildroot during development".
>
> Buildroot already supports uClibc, (e)glibc and musl, for a wide range
> of architectures.
>
> Best regards,
>
> Thomas

I can agree that buildroot is one possibility.
Trust that I have evaluated a lot of different systems before coming
to the conclusion of starting autocrossgen. Lets quickly go through
some of those evaluations and why I chose not to use `X':

## crosstool-ng
With the elephant in the room, lets just get this one out of the way quickly.
 * It is slowly updated, and quickly out of date.
 * Trying to bend it to use daily/weekly snapshots of binutils (needed
for building gcc from snapshots or subversion) is not supported
upstream.
 * To the same point, getting it to build gcc snapshots/subversion is
somewhat painful, since these types of changes are not allowed in
upstream crosstool-ng.
 * The previous two features not being supported upstream means I have
to have my own fork of ct-ng, which I don't want to do because I
sometimes dislike working on the code-base itself. I usually make
commits to crosstool-ng because no other tool has as much support and
focus on just making a toolchain.
 * Rebuilding from specific points in the build is painful.

My points on crosstool-ng are specific to my use-case of what I need
for a specific set of projects I am interested in. If you are building
a stable toolchain that you want to be able to reproduce over the
lifetime of an embedded project, crosstool-ng is the tool you want!

## cgen
This tool is fairly old, and I've spoke with Frank Ch. Eigler about me
possibly sending him changes to update this tool, it's code-base is
pretty complicated and out of date (uses scheme?!).

## musl-cross
I probably don't need to go into as many points with this one, it only
supports musl-libc. It is a very simple code-base though. And useful
if all you need to do is test musl-libc.

## buildroot
All I need to do is build a toolchain, a quick build of the linux
kernel for the architecture at hand and maybe u-boot if needed, run it
under qemu to make sure things "build and run". Buildroot does this
and much more, so much more that using it for my small use-case feels
to me like swatting a fly with a sledge hammer. I didn't look into
using buildroot to build snapshot/git versions of binutils or
snapshots/subversion versions of gcc, but that is a need for my
use-case.

I'm *NOT* saying that "I think buildroot is useless". Because that
would be bad judgement of where I'm coming from. I use buildroot for
many of my embedded projects. I like it much for what it does, but it
doesn't help me to make changes to gcc and others, quickly spin just a
toolchain build, and run a few tests.

## ptxdist, yocto, gentoo, et-alii
These are about the same as buildroot for me. too much infrastructure
around building a target image, and these tools do a lot more then
buildroot, such as creating 'sdk' tarballs for application developers,
and developer tools for the target.

***

The open-source landscape has a lot of options, and last but not least
is running the build by hand... which I'm sure we have all either done
on our own, or guided by linux-from-scratch (or cross-lfs).

Most gcc developers use the combined method, where you just extract
gcc to a source directory: 'combined'
then extract binutils in the same 'combined' directory (overwriting
any pre-existing files).
gmp, mpfr, mpc, isl, cloog, and libelf get copied (as those names) to
the root directory of the combined folder.
Then you create and change to a build folder and then you configure
(running configure from the combined folder from the build directory)
and build a bootstrap. The process is documented very well here
(although a bit out of date, it still uses cvs):
https://gcc.gnu.org/wiki/Building_Cross_Toolchains_with_gcc
https://gcc.gnu.org/install/

***

## Autocrossgen builds:
 - Binutils for the host (with gmp, mpfr, mpc, isl, cloog, and libelf combined)
 - Gcc pass1 to build the libc (with the same libraries in the combined build)
 - Libc of choice (discovered by reading the last quad of the tuple,
*-*-linux-gnu* for glibc, *-*-linux-uclibc* for uclibc, and
*-*-linux-musl* for musl-libc)
 - Gcc final (with combined libraries)
 - Binutils for the target (also with combined libraries)

The combined libraries are simpler to manage then writing a bunch of
build architecture to support building each library separately and
making sure that the major component being built (gcc or binutils) are
finding the right version, and possibly not the host version. It's a
matter of consistency.

You can clone autocrossgen right now and create either a arm or
powerpc toolchain like so:

```
git clone https://github.com/bhundven/autocrossgen
cd autocrossgen
./autogen.sh
./configure --prefix=arm-acg-toolchain --target=arm-unknown-linux-gnueabi
make all
```

or for powerpc (32):
```
git clone https://github.com/bhundven/autocrossgen
cd autocrossgen
./autogen.sh
./configure --prefix=powerpc-acg-toolchain --target=powerpc-unknown-linux-gnu
make all
```

to evaluate what I've done for yourself. I've mentioned before that it
is at a very early stage. There are missing checks, issues with
parallel builds, lack of support for specific architectures, which I
hope most of this is resolved in some time.

I hope this is a better explanation of autocrossgen. It doesn't
replace any existing project, it just fits a small niche I have to
"itch" :)

-Bryan

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

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

* Re: Announcing `autocrossgen'
  2014-10-23  2:58 Announcing `autocrossgen' Bryan Hundven
  2014-10-23  7:36 ` Per Arnold Blaasmo
@ 2014-11-10  2:10 ` Bryan Hundven
  1 sibling, 0 replies; 12+ messages in thread
From: Bryan Hundven @ 2014-11-10  2:10 UTC (permalink / raw)
  To: crossgcc maillist

I've decided to not continue autocrossgen.

-Bryan

On Wed, Oct 22, 2014 at 7:58 PM, Bryan Hundven <bryanhundven@gmail.com> wrote:
> Hello list,
>
> Out of necessity for a tool to build a cross-compiler that is more
> friendly to developers, I started this project. I've posted it to
> github so that it is easy for others to contribute to:
>
> https://github.com/bhundven/autocrossgen
>
> If you'd like to contribute, check out the issues and milestones:
> https://github.com/bhundven/autocrossgen/issues
> https://github.com/bhundven/autocrossgen/milestones
>
> Just fork the code, make changes to your tree, and open a pull request.
>
> Enjoy!
>
> -Bryan

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

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

end of thread, other threads:[~2014-11-10  2:10 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-23  2:58 Announcing `autocrossgen' Bryan Hundven
2014-10-23  7:36 ` Per Arnold Blaasmo
2014-10-23  7:41   ` Bryan Hundven
2014-10-23  7:58     ` Bryan Hundven
2014-10-23  8:18     ` Nikita Orlov
2014-10-23  8:27       ` Bryan Hundven
2014-10-23  9:07         ` Nikita Orlov
2014-10-23 17:40           ` ANDY KENNEDY
2014-10-23  9:18       ` Bryan Hundven
2014-10-23 18:49     ` Thomas Petazzoni
2014-10-23 19:50       ` Bryan Hundven
2014-11-10  2:10 ` Bryan Hundven

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