[Buildroot] Integration of crosstool-NG as backend - Status report. And patch! :-)

Yann E. MORIN yann.morin.1998 at anciens.enib.fr
Wed Sep 15 21:39:40 UTC 2010


Hello All!

Here is a quick summary on the integration of crosstool-NG as a backend
to generate toolchains in lieu of the internal mechanism.

After the code-shifting and generalisations pushed in the latest stable of
buildroot, I continued working on the backend stuff. It has been delayed a
little bit while I was on holidays, but I resumed early last week. So...

Building crosstool-NG itself: 75%
- using crosstool-NG 1.8.0
  -> will update to 1.8.1 before pushing  [A]
- using "./configure --local" for now, as it is easy to use
- using hand-crafted get, unpack, patch, build, and install rules
  -> need to switch to the generic infrastructure later, if possible  [B]

Configuring the toolchain: ~50%
- has a default crosstool-ng.config file
- uses existing, and adds new high-level options in buildroot's menuconfig
  - arch selection
  - C library selection and some options
- uses those options to munge the crosstool-NG's .config
  - only basic stuff is in: arch, endianness, bitness...
  -> will need quite a lot of work to push all options:  [C]
     - arch options: soft-float, ABI, CPU, tune...
     - uClibc/eglibc config files...
     - others...
  -> no sanity check is done for those options for now  [D]
  -> maybe they shall disapear from buildroot's menuconfig
     when crosstool-NG is used as a backend ?
- offers a ctng-menuconfig rule to tweak the configuration
  - after save, overide with options from buildroot again
  -> will need a warning that the user's choice were overiden  [E]
- whenever options in buildroot's .config change, toolchain is rebuilt
  - needed because some of those options are needed for crosstool-NG
  -> inconvenient in case a package is added/removed, or other
     non-toolchain option is changed
  -> will need a two-step check of crosstool-NG's .config to see if
     it did change indeed  [F]

Building the toolchain: 100%
- toolchain installed properly in $(O)/toolchain
- libs properly copied to $(O)/target
- sysroot properly copied to $(O)/staging

Using the toolchain: 75%
- properly _built_ trivial busybox-based image
-> needs more thorough testing with bigger set of packages  [G]
-> needs run-time testing                                   [H]

Misc:
- requires the previously-posted sed patch to move the host-sed.
  -> included in the attached patch

Planning:
- 20100919: push stable patch to list with current feature list:
  [E], [F], and parts of [C]; maybe [D]
- 20100930: push stable patch to list with sanity checks and cleanups:
  [A], [B], [D], and parts of [C], [G] and [H]
- 20101015: fixes
- aiming for inclusion for 2010.11

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
-------------- next part --------------
A non-text attachment was scrubbed...
Name: br.ct-ng.patch
Type: text/x-diff
Size: 31080 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20100915/4b853c4a/attachment.patch>


More information about the buildroot mailing list