Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] modifying buildroot for non- linux freertos
@ 2013-04-15 21:53 Peter Saunderson
  2013-04-17  6:23 ` Arnout Vandecappelle
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Saunderson @ 2013-04-15 21:53 UTC (permalink / raw)
  To: buildroot

Hi,

I have been using buildroot for embedded linux builds for a while now 
and think its great.  Now I want to use the shell scripts and the 
general buildroot environment to build freertos using newlib rather than 
uclibc.

I have prototyped this but have run into some not unexpected problems 
and thought you guys might be able to help.  If you consider this email 
just spam flame me now and I will go quietly on without further 
disturbing you.

I want to do this because I want control over my build environment, 
because I need OpenOCD, gdb etc etc and because if the tools are ok for 
my embedded linux environment then I can save effort by using close to 
the same tools for simpler freertos solutions.  The buildroot style 
seems just what I need to solve my problem and would allow me to have 
all the control over my build environment that I need in one place.

Stage 1 is to get the tools built and I only need shared libraries so 
that should be simpler.  I keep configuration simple and just have a 
build freertos configuration file (bf1_config) with all the config stuff 
I find I need so I avoid .config and menuconfig for now.  I use the 
scripts in support and build packages from package (so far I found I 
need zlib, perl, mpfr, mpc, m4, libtool, gmp, expat, binutils, automake, 
autoconf).  The tools I am building are patched from files in toolchain 
(so far I have newlib, gdb, gcc).

The problem originates because newlib (http://sourceware.org/newlib/) 
has a different build style to uClibc but using uclibc.mk as a starting 
point for newlib.mk and making major mods I can get most things 
working.  I have built all the output/host/usr/bin tools but 
$(GCC_BUILD_DIR3)/.installed target has not been run so there is no 
$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc but my newlib build is trying 
to use it.  So what I think I need to do is delay the build of newlib 
and I am not sure how to do that yet.  So I am puzzling over 
$(GCC_BUILD_DIR1)/.configured:, $(GCC_BUILD_DIR2)/.configured: and 
$(GCC_BUILD_DIR3)/.configured: targets and wondering to myself what bit 
in buildroot sequences these and how can I fit my new newlib targets 
into the right place in the build sequence.  If you have read up to this 
point you may have a view or some tips. Perhaps there is a good guide 
that I have missed that could help?  I did a search of the archive but 
did not find anything that was of immediate assistance.  Perhaps there 
is a better place to ask this question?  Perhaps is such an interesting 
problem that you would like to see me create a new git project for it?

Thanks for your time.

Peter.

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

* [Buildroot] modifying buildroot for non- linux freertos
  2013-04-15 21:53 [Buildroot] modifying buildroot for non- linux freertos Peter Saunderson
@ 2013-04-17  6:23 ` Arnout Vandecappelle
  2013-04-17  8:17   ` Thomas Petazzoni
  0 siblings, 1 reply; 3+ messages in thread
From: Arnout Vandecappelle @ 2013-04-17  6:23 UTC (permalink / raw)
  To: buildroot

  Hi Peter,

On 15/04/13 23:53, Peter Saunderson wrote:
[snip]
> The problem originates because newlib (http://sourceware.org/newlib/) has
> a different build style to uClibc but using uclibc.mk as a starting point
> for newlib.mk and making major mods I can get most things working.  I
> have built all the output/host/usr/bin tools but
> $(GCC_BUILD_DIR3)/.installed target has not been run so there is no
> $(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-cc but my newlib build is trying
> to use it.  So what I think I need to do is delay the build of newlib and
> I am not sure how to do that yet.  So I am puzzling over
> $(GCC_BUILD_DIR1)/.configured:, $(GCC_BUILD_DIR2)/.configured: and
> $(GCC_BUILD_DIR3)/.configured: targets and wondering to myself what bit
> in buildroot sequences these and how can I fit my new newlib targets into
> the right place in the build sequence.  If you have read up to this point
> you may have a view or some tips. Perhaps there is a good guide that I
> have missed that could help?  I did a search of the archive but did not
> find anything that was of immediate assistance.  Perhaps there is a
> better place to ask this question?  Perhaps is such an interesting
> problem that you would like to see me create a new git project for it?

  I'm afraid that the expertise on the internal buildroot toolchain build 
process is not here anymore. Some buildroot developers understand how the 
.mk file works, but not really why things were done in that particular way...

  But anyway, I don't think you really need buildroot for this. Buildroot 
is meant for building packages for the target, and just builds some host 
packages that are needed for building some of these packages. I think 
crosstool-NG is a much better fit for your purpose. It's build system is 
pretty complex, but I think it's still easier to understand than the 
buildroot system. Also, crosstool-NG might be interested in adding 
support for newlib (as an alternative to uClibc) in its core infrastructure.

  BTW, you could also consider looking at musl instead of newlib.

  Regards,
  Arnout
-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

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

* [Buildroot] modifying buildroot for non- linux freertos
  2013-04-17  6:23 ` Arnout Vandecappelle
@ 2013-04-17  8:17   ` Thomas Petazzoni
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Petazzoni @ 2013-04-17  8:17 UTC (permalink / raw)
  To: buildroot

Peter, Arnout,

On Wed, 17 Apr 2013 08:23:22 +0200, Arnout Vandecappelle wrote:

>   I'm afraid that the expertise on the internal buildroot toolchain build 
> process is not here anymore. Some buildroot developers understand how the 
> .mk file works, but not really why things were done in that particular way...
> 
>   But anyway, I don't think you really need buildroot for this. Buildroot 
> is meant for building packages for the target, and just builds some host 
> packages that are needed for building some of these packages. I think 
> crosstool-NG is a much better fit for your purpose. It's build system is 
> pretty complex, but I think it's still easier to understand than the 
> buildroot system. Also, crosstool-NG might be interested in adding 
> support for newlib (as an alternative to uClibc) in its core infrastructure.

Crosstool-NG already has support for newlib.

Peter, I agree with Arnout here. The main point of Buildroot is to
build a root filesystem with Linux applications and libraries, and this
is not something you could re-use on FreeRTOS.

You should therefore definitely have a look at Crosstool-NG to produce
a newlib toolchain that works for FreeRTOS.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

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

end of thread, other threads:[~2013-04-17  8:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-15 21:53 [Buildroot] modifying buildroot for non- linux freertos Peter Saunderson
2013-04-17  6:23 ` Arnout Vandecappelle
2013-04-17  8:17   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox