Skip to contentSkip to conversation

docs/manual: slightly improve faq entry about compiler on target

PATCH New Thomas Petazzoni 3 participants 7 messages Oct 8, 2014 – Oct 12, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 docs/manual: slightly improve faq entry about compiler on target

---
 docs/manual/faq-troubleshooting.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
docs/manual/faq-troubleshooting.txt +3 -1
index 7195234..693028c 100644
@@ -35,7 +35,9 @@ target_ would be stopped from the Buildroot-2012.11 release because:
 * this feature was only available for Buildroot toolchains;
 * Buildroot mostly targets _small_ or _very small_ target hardware
   with limited resource onboard (CPU, ram, mass-storage), for which
-  compiling does not make much sense.
+  compiling on the target does not make much sense;
+* Buildroot aims at easing the cross-compilation, making native
+  compilation on the target unnecessary.
 
 If you need a compiler on your target anyway, then Buildroot is not
 suitable for your purpose. In such case, you need a _real
Signature · 1 line
2.0.0
#1 lore raw

PATCH 2/2 docs/manual: add FAQ entry about speeding up the build process

This is a very frequently asked question, so let's add a FAQ entry about it, that we can progressively extend with more advices for our users.

---
 docs/manual/faq-troubleshooting.txt | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
docs/manual/faq-troubleshooting.txt +34 -0
index 693028c..9325ac0 100644
@@ -205,3 +205,37 @@ On this matter, the Buildroot developers make this position statement:
    upgrades by upgrading the entire root filesystem image at once,
    the image deployed to the embedded system is guaranteed to really
    be the one that has been tested and validated.
+
+[[faq-speeding-up-build]]
+=== How to speed-up the build process?
+
+Since Buildroot often involves doing full rebuilds of the entire
+system that can be quite long, we provide below a number of tips to
+help reduce the build time:
+
+ * Use a pre-built external toolchain instead of the default Buildroot
+   internal toolchain. By using a pre-built Linaro toolchain (on ARM)
+   or a Sourcery CodeBench toolchain (for ARM, x86, x86-64, MIPS,
+   etc.), you will the build time of the toolchain at each build,
+   approximately 15 to 20 minutes. Note that using an external
+   toolchain temporarily does not prevent you to switch back to an
+   internal toolchain (that may provide a higher level of
+   customization) once the rest of your system is working;
+
+ * Use the +ccache+ compiler cache (see: xref:ccache[]);
+
+ * Learn about rebuilding only the few packages you actually care
+   about (see xref:rebuild-pkg[]), but beware that sometimes full
+   rebuilds are anyway necessary (see xref:full-rebuild[]);
+
+ * Make sure you are not using a virtual machine for the Linux system
+   used to run Buildroot. Most of the virtual machine technologies are
+   known to cause a significant performance impact on I/O, which is
+   really important for building source code;
+
+ * Make sure that you're using only local files: do not attempt to do
+   a build over NFS, or to keep the Buildroot download folder over
+   NFS. This significantly slows down the build;
+
+ * Buy (or convince your boss to) new hardware. SSDs and lots of RAM
+   are key to speeding up the builds.
Signature · 1 line
2.0.0
#2 lore raw

PATCH 2/2 docs/manual: add FAQ entry about speeding up the build process

Thomas, All,

On 2014-10-08 22:16 +0200, Thomas Petazzoni spake thusly:

Quoted 19 lines

This is a very frequently asked question, so let's add a FAQ entry about it, that we can progressively extend with more advices for our users.

---
 docs/manual/faq-troubleshooting.txt | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)
docs/manual/faq-troubleshooting.txt +2 -0
index 693028c..9325ac0 100644
@@ -205,3 +205,37 @@ On this matter, the Buildroot developers make this position statement:
    upgrades by upgrading the entire root filesystem image at once,
    the image deployed to the embedded system is guaranteed to really
    be the one that has been tested and validated.
+
+[[faq-speeding-up-build]]

docs/manual/faq-troubleshooting.txt On this matter, the Buildroot developers make this position statement: · line 219

Quoted 10 lines
docs/manual/faq-troubleshooting.txt +10 -0
+=== How to speed-up the build process?
+
+Since Buildroot often involves doing full rebuilds of the entire
+system that can be quite long, we provide below a number of tips to
+help reduce the build time:
+
+ * Use a pre-built external toolchain instead of the default Buildroot
+   internal toolchain. By using a pre-built Linaro toolchain (on ARM)
+   or a Sourcery CodeBench toolchain (for ARM, x86, x86-64, MIPS,
+   etc.), you will the build time of the toolchain at each build,

you will (something) the build time of the toolchain...

I'd suggest:
you will gain back the time it takes to build the toolchain, approximately 15 to 20 minutes, at each subsequent complete rebuild.

docs/manual/faq-troubleshooting.txt On this matter, the Buildroot developers make this position statement: · line 221

Quoted 2 lines
docs/manual/faq-troubleshooting.txt +2 -0
+   approximately 15 to 20 minutes. Note that using an external
+   toolchain temporarily does not prevent you to switch back to an

...temporarily using an external toolchain...

Quoted 7 lines
docs/manual/faq-troubleshooting.txt +7 -0
+   internal toolchain (that may provide a higher level of
+   customization) once the rest of your system is working;
+
+ * Use the +ccache+ compiler cache (see: xref:ccache[]);
+
+ * Learn about rebuilding only the few packages you actually care
+   about (see xref:rebuild-pkg[]), but beware that sometimes full

docs/manual/faq-troubleshooting.txt On this matter, the Buildroot developers make this position statement: · line 238

Quoted 10 lines
docs/manual/faq-troubleshooting.txt +10 -0
+   rebuilds are anyway necessary (see xref:full-rebuild[]);
+
+ * Make sure you are not using a virtual machine for the Linux system
+   used to run Buildroot. Most of the virtual machine technologies are
+   known to cause a significant performance impact on I/O, which is
+   really important for building source code;
+
+ * Make sure that you're using only local files: do not attempt to do
+   a build over NFS, or to keep the Buildroot download folder over
+   NFS. This significantly slows down the build;

Well, if there was but one thing to put on the network, it would be the download directory.

Given a relatively fast LAN, an NFS- (or even CIFS- or sshfs-) hosted BR2_DL_DIR would not drastically impact performance. Note that, beside transfer bandwidth, there is almost invariably decompression to be done.

docs/manual/faq-troubleshooting.txt On this matter, the Buildroot developers make this position statement: · line 240

Quoted 1 line
docs/manual/faq-troubleshooting.txt +1 -0
+ * Buy (or convince your boss to) new hardware. SSDs and lots of RAM

Buy, or convince your boss to buy new hardware.

Regards,
Yann E. MORIN.

Quoted 8 lines
docs/manual/faq-troubleshooting.txt +1 -0
+   are key to speeding up the builds.
Signature · 6 lines
2.0.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH 1/2 docs/manual: slightly improve faq entry about compiler on target

In reply to Thomas Petazzoni

Thomas, All,

On 2014-10-08 22:16 +0200, Thomas Petazzoni spake thusly:

Quoted 10 lines
---
 docs/manual/faq-troubleshooting.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
docs/manual/faq-troubleshooting.txt +0 -0
index 7195234..693028c 100644

docs/manual/faq-troubleshooting.txt target_ would be stopped from the Buildroot-2012.11 release because: · line 38

Quoted 5 lines
docs/manual/faq-troubleshooting.txt +1 -1
@@ -35,7 +35,9 @@ target_ would be stopped from the Buildroot-2012.11 release because:
 * this feature was only available for Buildroot toolchains;
 * Buildroot mostly targets _small_ or _very small_ target hardware
   with limited resource onboard (CPU, ram, mass-storage), for which
-  compiling does not make much sense.
+  compiling on the target does not make much sense;

I'd phrase that differently:

Buildroot mostly targets _small_ or _very small_ target hardware with limited resource onboard (CPU, ram, mass-storage), on which compiling does not much much sense.

Note: s/for/on/

Regards,
Yann E. MORIN.

Quoted 12 lines
docs/manual/faq-troubleshooting.txt +2 -0
+* Buildroot aims at easing the cross-compilation, making native
+  compilation on the target unnecessary.
 
 If you need a compiler on your target anyway, then Buildroot is not
 suitable for your purpose. In such case, you need a _real
Signature · 6 lines
2.0.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 1/2 docs/manual: slightly improve faq entry about compiler on target

Dear Yann E. MORIN,

Quoted 13 lines · Yann E. MORIN

docs/manual/faq-troubleshooting.txt target_ would be stopped from the Buildroot-2012.11 release because: · line 38

Quoted 10 lines
docs/manual/faq-troubleshooting.txt +1 -1
index 7195234..693028c 100644
@@ -35,7 +35,9 @@ target_ would be stopped from the Buildroot-2012.11 release because:
 * this feature was only available for Buildroot toolchains;
 * Buildroot mostly targets _small_ or _very small_ target hardware
   with limited resource onboard (CPU, ram, mass-storage), for which
-  compiling does not make much sense.
+  compiling on the target does not make much sense;

I'd phrase that differently:

Quoted 5 lines

Buildroot mostly targets _small_ or _very small_ target hardware with limited resource onboard (CPU, ram, mass-storage), on which compiling does not much much sense.

Note: s/for/on/

Right, that's another option, but I find my version to be even more explicit. Your version is correct, but still leaves a still bit of fuzziness about the machine on which we're talking about compiling things on.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#5 lore raw

PATCH 1/2 docs/manual: slightly improve faq entry about compiler on target

In reply to Thomas Petazzoni

Thomas, All,

On 2014-10-08 22:16 +0200, Thomas Petazzoni spake thusly:

Quoted 1 line

I agree with your reply to my previous comment, so:

Regards,
Yann E. MORIN.

Quoted 26 lines
---
 docs/manual/faq-troubleshooting.txt | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
docs/manual/faq-troubleshooting.txt +3 -1
index 7195234..693028c 100644
@@ -35,7 +35,9 @@ target_ would be stopped from the Buildroot-2012.11 release because:
 * this feature was only available for Buildroot toolchains;
 * Buildroot mostly targets _small_ or _very small_ target hardware
   with limited resource onboard (CPU, ram, mass-storage), for which
-  compiling does not make much sense.
+  compiling on the target does not make much sense;
+* Buildroot aims at easing the cross-compilation, making native
+  compilation on the target unnecessary.
 
 If you need a compiler on your target anyway, then Buildroot is not
 suitable for your purpose. In such case, you need a _real
Signature · 6 lines
2.0.0

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'