hc
2024-08-19 eb6b9ee90f50f13c5abb885ce483802d6262f2b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
 
[[migrating-from-ol-versions]]
== Migrating from older Buildroot versions
 
Some versions have introduced backward incompatibilities. This section
explains those incompatibilities, and for each explains what to do to
complete the migration.
 
[[migrating-approach]]
=== General approach
 
To migrate from an older Buildroot version, take the following steps.
 
. For all your configurations, do a build in the old Buildroot
  environment. Run +make graph-size+. Save
  +graphs/file-size-stats.csv+ in a different location. Run +make
  clean+ to remove the rest.
. Review the specific migration notes below and make the required
  adaptations to external packages and custom build scripts.
. Update Buildroot.
. Run +make menuconfig+ starting from the existing +.config+.
. If anything is enabled in the Legacy menu, check its help text,
  unselect it, and save the configuration.
. For more details, review the git commit messages for the packages that
  you need. Change into the +packages+ directory and run
  +git log <old version>.. -- <your packages>+.
. Build in the new Buildroot environment.
. Fix build issues in external packages (usually due to updated
  dependencies).
. Run +make graph-size+.
. Compare the new +file-size-stats.csv+ with the original one, to
  check if no required files have disappeared and if no new big unneeded
  files have appeared.
. For configuration (and other) files in a custom overlay that overwrite
  files created by Buildroot, check if there are changes in the
  Buildroot-generated file that need to be propagated to your custom
  file.
 
[[br2-external-converting]]
=== Migrating to 2016.11
 
Before Buildroot 2016.11, it was possible to use only one br2-external
tree at once. With Buildroot 2016.11 came the possibility to use more
than one simultaneously (for details, see xref:outside-br-custom[]).
 
This however means that older br2-external trees are not usable as-is.
A minor change has to be made: adding a name to your br2-external tree.
 
This can be done very easily in just a few steps:
 
 * First, create a new file named +external.desc+, at the root of your
   br2-external tree, with a single line defining the name of your
   br2-external tree:
+
----
$ echo 'name: NAME_OF_YOUR_TREE' >external.desc
----
+
.Note
Be careful when choosing a name: It has to be unique and be made
with only ASCII characters from the set +[A-Za-z0-9_]+.
 
 * Then, change every occurence of +BR2_EXTERNAL+ in your br2-external
   tree with the new variable:
+
----
$ find . -type f | xargs sed -i 's/BR2_EXTERNAL/BR2_EXTERNAL_NAME_OF_YOUR_TREE_PATH/g'
----
 
Now, your br2-external tree can be used with Buildroot 2016.11 onward.
 
.Note:
This change makes your br2-external tree incompatible with Buildroot
before 2016.11.
 
[[migrating-host-usr]]
=== Migrating to 2017.08
 
Before Buildroot 2017.08, host packages were installed in +$(HOST_DIR)/usr+
(with e.g. the autotools' +--prefix=$(HOST_DIR)/usr+). With Buildroot
2017.08, they are now installed directly in +$(HOST_DIR)+.
 
Whenever a package installs an executable that is linked with a library
in +$(HOST_DIR)/lib+, it must have an RPATH pointing to that directory.
 
An RPATH pointing to +$(HOST_DIR)/usr/lib+ is no longer accepted.