Go to file
Alexey Brodkin 5e52c28397 arch: set ld's common-page-size explicitly
On some CPU architecures it's possible to use MMU pages of different
sizes, for example on ARC or ARM. And while for user-space
applications the page size is supposed to be transparent, there's
still some use of that extra information. In particular it's possible
to align data structures or code/data sections on page boundary, etc.

For these tricks to become possible tools which pack data (think of
the linker, like GNU "ld") need to be informed of the page size to
be considered.

Obviously, there're some sane defaults which are being used most of
the time, so we even think about that peculiarity, but when non-default
value needs to be used, GNU "ld" accepts 2 properties related to page
size:

 -z common-page-size=XXX
 -z max-page-size=YYY

And while in thery those might be different (but always "common" <= "max"),
and that might make sense if we build for some unknown platfrom,
in case of Buildroot when we build entire target's filesystem and so
know exactly the configuration we're targeting to, we may safely assume
"common-page-size"="max-page-size".

See a lengthy discussion in this thread [1].

Fixes:

  http://autobuild.buildroot.net/results/c8b2f331c98453670cd982558144c4fd84674a3d/ (uclibc)
  http://autobuild.buildroot.net/results/3a22f7aac38145b26c549254b819f87329e7a77e/ (glibc)

And while at it, recover use of "XX-page-size" for ARC, as with [2]
moving page size selection in the generic code we've got unexpected
override for ARC (note "=", but not "+="):
--------------------->8--------------------
ARCH_TOOLCHAIN_WRAPPER_OPTS = -matomic
--------------------->8--------------------

[1] https://lists.buildroot.org/pipermail/buildroot/2022-July/646176.html
[2] https://git.buildroot.net/buildroot/commit/?id=dcb74db89e74e512e36b32cea6f574a1a1ca84c4

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-08-23 23:51:48 +02:00
arch arch: set ld's common-page-size explicitly 2022-08-23 23:51:48 +02:00
board board/freescale/common/imx: align u-boot-spl to 4 bytes 2022-08-23 23:29:19 +02:00
boot boot/optee-os: fix typo on BR2_TARGET_OPTEE_OS_LATEST 2022-08-15 11:03:58 +02:00
configs Revert "configs/bananapi_m1: use NEON+VFPv4 as FPU strategy" 2022-08-15 21:03:51 +02:00
docs docs/manual/prerequisite.txt: add findutils in dependencies 2022-08-15 22:21:33 +02:00
fs fs/tar: add option for zstd compression 2022-07-23 22:40:01 +02:00
linux linux/linux: fix firmware-imx dependency 2022-08-14 12:28:25 +02:00
package package/jpeg: SIMD needs VSX with little endian 2022-08-23 22:58:24 +02:00
support package/pkg-python: clean conflicting pep517 packages before install 2022-08-22 11:54:25 +02:00
system package/systemd: add setting for systemd default.target 2022-05-02 22:58:44 +02:00
toolchain toolchain/Config.in: update gcc bug 101915 comment 2022-08-07 14:56:58 +02:00
utils utils/genrandconfig: dump traceback for unhandled exceptions 2022-08-23 22:19:52 +02:00
.clang-format .clang-format: initial import from Linux 5.15.6 2022-01-01 15:01:13 +01:00
.defconfig arch: remove support for sh64 2016-09-08 22:15:15 +02:00
.flake8 Revert ".flake8: fix check for 80/132 columns" 2021-01-02 17:38:20 +01:00
.gitignore
.gitlab-ci.yml utils/checkpackagelib/lib_sysv: run shellcheck 2022-02-06 18:27:03 +01:00
.shellcheckrc utils/check-package: improve shellcheck reproducibility 2022-07-25 23:52:47 +02:00
CHANGES Update for 2022.08-rc1 2022-08-12 21:31:20 +02:00
Config.in Config.in: move toolchain menu before build options 2022-07-27 11:11:19 +02:00
Config.in.legacy Config.in.legacy: add missing select 2022-08-15 11:03:38 +02:00
COPYING
DEVELOPERS package/python-qrcode: new package 2022-08-08 22:24:45 +02:00
Makefile Update for 2022.08-rc1 2022-08-12 21:31:20 +02:00
Makefile.legacy Remove BR2_DEPRECATED 2016-10-15 23:14:45 +02:00
README docs: move the IRC channel away from Freenode 2021-05-29 22:16:23 +02:00

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