Go to file
Romain Naour 1713c3c344 linux: disable Werror for powerpc kernels
>From patch [1] included in kernel >= 5.0:
"The upcoming GCC 9 release extends the -Wmissing-attributes warnings
(enabled by -Wall) to C and aliases: it warns when particular function
attributes are missing in the aliases but not in their target.

In particular, it triggers for all the init/cleanup_module
aliases in the kernel (defined by the module_init/exit macros),
ending up being very noisy.

These aliases point to the __init/__exit functions of a module,
which are defined as __cold (among other attributes). However,
the aliases themselves do not have the __cold attribute.

Since the compiler behaves differently when compiling a __cold
function as well as when compiling paths leading to calls
to __cold functions, the warning is trying to point out
the possibly-forgotten attribute in the alias."

Werror is set by default while building ppc kernel [2], but
some warning can be introduced while building current kernel with
newer compiler (for example building kernel 4.19 with gcc 9.1).

For the same reason why we remove Werror in packages's compiler
flags. Building with Werror is not bulletproof when we start
using a newer compiler that introduce new warnings.
This is the case here.

Also this option is a bit strange since it's specific to ppc kernels:
"The intention is to make it harder for people to inadvertantly
introduce warnings in the arch/powerpc code."
Other kernel developers on other arch may be interested by a
similar/more generic option.

So, It's clearly intended for kernel developers.

Instead of backporting this patch [1] to kernel 4.19, select
unconditionally the Kconfig option CONFIG_PPC_DISABLE_WERROR
that allow to disable Werror.

Fixes:
https://gitlab.com/kubu93/toolchains-builder/-/jobs/205435741

[1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=a6e60d84989fa0e91db7f236eda40453b0e44afa
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=ba55bd74360ea4b8b95e73ed79474d37ff482b36
[3] https://gitlab.com/bootlin/toolchains-builder

Fix-suggested-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-06-22 21:00:34 +02:00
arch arch/Config.in.nds32: force syntax colouring to kconfig 2019-06-20 21:27:20 +02:00
board configs/qemu_riscv32_virt: update to 5.1 kernel 2019-06-20 15:56:19 +02:00
boot boot/at91bootstrap3: bump to version 3.8.12 2019-06-20 21:34:05 +02:00
configs configs/qemu_riscv32_virt: update to 5.1 kernel 2019-06-20 15:56:19 +02:00
docs docs: use-case for un-ignoring VCS directories and overridden source dir 2019-06-10 16:49:51 +02:00
fs core: remove show-dependency-tree 2019-05-07 23:06:05 +02:00
linux linux: disable Werror for powerpc kernels 2019-06-22 21:00:34 +02:00
package package/libtorrent-rasterbar: work around gcc bug 85180 2019-06-22 20:50:57 +02:00
support support/testing/infra/emulator: increase memory size used by Qemu 2019-06-22 19:28:36 +02:00
system system/Config.in: add new init - openrc 2019-05-18 23:16:04 +02:00
toolchain toolchain: gcc bug 90620 has not been fixed in gcc 8.x 2019-06-22 20:36:32 +02:00
utils utils/scancpan: fix test file creation on br-external 2019-06-09 23:37:04 +02:00
.defconfig
.flake8 .flake8: fix check for 80/132 columns 2019-04-10 12:31:33 +02:00
.gitignore
.gitlab-ci.yml package/luasyslog: new package 2019-06-20 18:25:15 +02:00
.gitlab-ci.yml.in .gitlab-ci.yml: add trigger per job 2019-05-01 15:42:45 +02:00
CHANGES Update for 2019.02.3 2019-06-07 10:36:23 +02:00
Config.in toolchain: set the ssp gcc option in kconfig 2019-03-13 00:01:55 +01:00
Config.in.legacy package/x11r7/xapp_mkfontdir: remove package 2019-06-20 21:39:03 +02:00
COPYING
DEVELOPERS DEVELOPERS: Remove Markos Chandras 2019-06-22 20:19:39 +02:00
Makefile Kickoff 2019.08 cycle 2019-06-02 10:17:27 +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 Freenode IRC.

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