• Skip to sidebar navigation
  • Skip to content

Bitbucket

  • More
    ProjectsRepositories
  • Help
    • Online help
    • Learn Git
    • Welcome to Bitbucket
    • Keyboard shortcuts
  • Log In
Alexander Dahl
  1. Alexander Dahl

buildroot

Public
Actions
  • Clone
  • Compare

Learn more about cloning repositories

You have read-only access

Navigation
  • Source
  • Commits
  • Branches
  • All Branches Graph
  • Forks
  1. Alexander Dahl
  2. buildroot

Source

buildroot/docs/manual/rebuilding-packages.txt
Thomas De SchampheleireThomas De Schampheleire committed 86a415df8a202 May 2014
Raw file
Source viewDiff to previous
+output/target+ directories, or which package would be compiled differently
 
1
// -*- mode:doc; -*-
2
// vim: set syntax=asciidoc:
3
​
4
[[full-rebuild]]
5
=== Understanding when a full rebuild is necessary
6
​
7
Buildroot does not attempt to detect what parts of the system should
8
be rebuilt when the system configuration is changed through +make
9
menuconfig+, +make xconfig+ or one of the other configuration
10
tools. In some cases, Buildroot should rebuild the entire system, in
11
some cases, only a specific subset of packages. But detecting this in
12
a completely reliable manner is very difficult, and therefore the
13
Buildroot developers have decided to simply not attempt to do this.
14
​
15
Instead, it is the responsibility of the user to know when a full
16
rebuild is necessary. As a hint, here are a few rules of thumb that
17
can help you understand how to work with Buildroot:
18
​
19
 * When the target architecture configuration is changed, a complete
20
   rebuild is needed. Changing the architecture variant, the binary
21
   format or the floating point strategy for example has an impact on
22
   the entire system.
23
​
24
 * When the toolchain configuration is changed, a complete rebuild
25
   generally is needed. Changing the toolchain configuration often
26
   involves changing the compiler version, the type of C library or
27
   its configuration, or some other fundamental configuration item,
28
   and these changes have an impact on the entire system.
29
​
30
 * When an additional package is added to the configuration, a full
31
   rebuild is not necessarily needed. Buildroot will detect that this
32
   package has never been built, and will build it. However, if this
33
   package is a library that can optionally be used by packages that
34
   have already been built, Buildroot will not automatically rebuild
35
   those. Either you know which packages should be rebuilt, and you
36
   can rebuild them manually, or you should do a full rebuild. For
37
   example, let's suppose you have built a system with the +ctorrent+
38
   package, but without +openssl+. Your system works, but you realize
39
   you would like to have SSL support in +ctorrent+, so you enable the
40
   +openssl+ package in Buildroot configuration and restart the
41
   build. Buildroot will detect that +openssl+ should be built and
42
   will be build it, but it will not detect that +ctorrent+ should be
43
   rebuilt to benefit from +openssl+ to add OpenSSL support. You will
44
   either have to do a full rebuild, or rebuild +ctorrent+ itself.
45
​
46
 * When a package is removed from the configuration, Buildroot does
47
   not do anything special. It does not remove the files installed by
48
   this package from the target root filesystem or from the toolchain
49
   _sysroot_. A full rebuild is needed to get rid of this
50
   package. However, generally you don't necessarily need this package
51
   to be removed right now: you can wait for the next lunch break to
52
   restart the build from scratch.
53
​
54
 * When the sub-options of a package are changed, the package is not
55
   automatically rebuilt. After making such changes, rebuilding only
56
   this package is often sufficient, unless enabling the package
57
   sub-option adds some features to the package that are useful for
58
   another package which has already been built. Again, Buildroot does
59
   not track when a package should be rebuilt: once a package has been
60
   built, it is never rebuilt unless explicitly told to do so.
61
​
62
 * When a change to the root filesystem skeleton is made, a full
63
   rebuild is needed. However, when changes to the root filesystem
  • Git repository management for enterprise teams powered by Atlassian Bitbucket
  • Atlassian Bitbucket v6.7.2
  • Documentation
  • Request a feature
  • About
  • Contact Atlassian
Atlassian

Everything looks good. We'll let you know here if there's anything you should know about.