Go to file
Gleb Mazovetskiy 6fbdf51596 Makefile: Parallelize glibc locale generation
Parallelizes locale generation based on `BR2_JLEVEL` setting.

Locale generation always runs during the finalize stage and can consume
a significant amount of time. Parallelizing it greatly reduces that time
on multi-core machines.

To parallelize it, we first invoke `localedef` for every locale in
parallel with the `--no-archive` option. This creates the intermediate
locale data instead of writing to the finally archive directly.

Then, we invoke `localedef` again once to create the archive from the
intermediate compiled locale data files.

We have to do it this way because `localedef` does not do any locking
when writing to the archive file, so calling it without `--no-archive`
concurrently could result in a corrupt archive file or an archive file
that is missing some locales.

While we're at it, make two additional improvements:
- Remove locale-archive before adding to it. Otherwise, repeated
  applications of target-finalize will keep on growing the file.
- Sort the locales when creating locale-archive so its contents are
  reproducible.

We use `find` to collect the installed locales rather than LOCALES. This
makes it possible for something else (skeleton, overlay, custom package)
to create and install additional locales and still have them added to
locale-archive.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
[Arnout:
 - Remove -j$(PARALLEL_JOBS), it's already part of $(MAKE)
 - Remove HOST_DIR, TARGET_DIR, STAGING_DIR, they're already exported
 - Extend commit message
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2021-07-25 16:46:30 +02:00
arch
board board/raspberrypi: use kernel Bluetooth mode 2021-07-20 21:53:50 +02:00
boot package: use the generic _HELP_CMDS for kconfig-based packages 2021-07-25 15:20:24 +02:00
configs board/mx6cubox: Switch to extlinux.conf 2021-07-20 21:27:29 +02:00
docs package/pkg-kconfig: generate generic help 2021-07-25 15:20:24 +02:00
fs fs/erofs: add big pcluster support 2021-07-19 22:34:21 +02:00
linux package: use the generic _HELP_CMDS for kconfig-based packages 2021-07-25 15:20:24 +02:00
package package/fwts: bump to version 21.05.00 2021-07-25 15:50:12 +02:00
support Makefile: Parallelize glibc locale generation 2021-07-25 16:46:30 +02:00
system
toolchain
utils
.defconfig
.flake8
.gitignore
.gitlab-ci.yml
CHANGES
Config.in Config.in: disable PIC/PIE for microblaze 2021-07-25 15:48:13 +02:00
Config.in.legacy package/spidermonkey: drop package 2021-07-24 23:29:22 +02:00
COPYING
DEVELOPERS package/apg: new package 2021-07-24 00:06:46 +02:00
Makefile Makefile: Parallelize glibc locale generation 2021-07-25 16:46:30 +02:00
Makefile.legacy
README

Buildroot is a simple, efficient and easy-to-use tool to generate embedded
Linux systems through cross-compilation.

The documentation can be found in docs/manual. You can generate a text
document with 'make manual-text' and read output/docs/manual/manual.text.
Online documentation can be found at http://buildroot.org/docs.html

To build and use the buildroot stuff, do the following:

1) run 'make menuconfig'
2) select the target architecture and the packages you wish to compile
3) run 'make'
4) wait while it compiles
5) find the kernel, bootloader, root filesystem, etc. in output/images

You do not need to be root to build or run buildroot.  Have fun!

Buildroot comes with a basic configuration for a number of boards. Run
'make list-defconfigs' to view the list of provided configurations.

Please feed suggestions, bug reports, insults, and bribes back to the
buildroot mailing list: buildroot@buildroot.org
You can also find us on #buildroot on OFTC IRC.

If you would like to contribute patches, please read
https://buildroot.org/manual.html#submitting-patches