summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'for-next/kbuild'Sascha Hauer2020-05-141-328/+413
|\
| * kbuild: resync top Makefile, mkmakefile, tags.sh with Linux 5.7-rc4Masahiro Yamada2020-05-121-260/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The prologue of the build system is not specific to Linux or Barebox. Paritially resync with Linux 5.7-rc4 - In Linux, $(objtree) is always '.', and $(srctree) might be relative. I am keeping both absolute for now to avoid unexpected breakage. - I did not resync single target for now. We need to touch Makefile.build a lot if we want to resync it. - 'export CDPATH=' is Barebox-only code, which was added by commit 6cc8d0544658 ("Makefile: disable CDPATH"). Keep it. - KBUILD_SRC no longer exists in the upstream Linux. I replaced it with building_out_of_srctree. - scripts/mkmakefile does not contain anything specific to Linux or Barebox. Resync it with Linux 5.7-rc4 - scripts/tags was imported from Linux 3.6 with some cherry-picks on top of that. Resync it with Linux 5.7-rc4 Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: add -Wall to KBUILD_HOSTCXXFLAGSMasahiro Yamada2020-05-121-1/+1
| | | | | | | | | | | | | | | | | | [ Linux commit 735aab1e008b6d9ba8057caa647b6619bf73460f ] Add -Wall to catch more warnings for C++ host programs. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: add -Werror={strict-prototypes, implicit-int} to KBUILD_CFLAGSMasahiro Yamada2020-05-121-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Turn Wstrict-prototypes into an error - Add -Werror=implicit-int - Use the standard form -Werror=... for implicit-function-declaration This commit imports the following Linux commits. They should work for barebox too. 80970472179a Makefile: enable -Werror=implicit-int and -Werror=strict-prototypes by default eeb5687a7139 kbuild: add -Werror=strict-prototypes flag unconditionally 61a0902a06d6 kbuild: add -Werror=implicit-int flag unconditionally b89f25ea7892 kbuild: use -Werror=implicit-... instead of -Werror-implicit-... Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: sync if_changed and friends with Linux 5.7-rc2Masahiro Yamada2020-05-041-11/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Resync cmd, if_change, if_changed_dep, and if_changed_rule. Clean up the users of if_changed_rule. I deleted the modversions rule. It is dead code because barebox does not define CONFIG_MODVERSIONS. It does not work without scripts/genksyms/ anyway. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: sync filechk rule with Linux 5.7-rc2Masahiro Yamada2020-05-041-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 'filechk' in the latest Linux works more simply, reliably. - Do not show CHK every time - Delete the *.tmp file when the filechk_$(1) fails - Do not open the first prerequisite. This is unneeded in most cases. I deleted pointeless dependency on Makefile. Also delete the meaningless assignment to 'targets' because filechk does not generate .cmd file. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: do not delete $@ explicitly on failureMasahiro Yamada2020-05-041-5/+1
| | | | | | | | | | | | | | | | | | | | The .DELETE_ON_ERROR special target is specified in scripts/Kbuild.include You do not need to delete $@ explicitly when the command fails. GNU Make automatically does it. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * ppc: rename arch/ppc/ to arch/powerpc/Masahiro Yamada2020-05-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In old days, Linux supported PowerPC with two arch directories, arch/ppc/ and arch/ppc64/. Linux commit 564ee7a5668e ("[PATCH] powerpc: Move arch/ppc*/kernel/vecemu.c to arch/powerpc") started the migration to arch/powerpc/, and commit 917f0af9e5a9 ("powerpc: Remove arch/ppc and include/asm-ppc") finished it. This commit aligns the directory name with the current Linux. I did 'git mv arch/ppc/ arch/powerpc/', and fixed up some hard-coded arch/ppc paths. Barebox has stuck to arch/ppc/ for a long time. To keep the backward compatibility, I added the following to the top Makefile. # Support ARCH=ppc for backward compatibility ifeq ($(ARCH),ppc) SRCARCH := powerpc endif Both ARCH=ppc and ARCH=powerpc work in the same way. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: set SRCARCH=arm when ARCH=arm64Masahiro Yamada2020-04-271-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | In Linux, ARCH can be passed from the command line or the environment. In barebox, "ARCH=arm64 make" works, but "make ARCH=arm64" does not. Instead of overriding ARCH, use SRCARCH properly. This is what Linux does for biarch directories (x86, sh, sparc). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: use $(SRCARCH) to point to the arch directoryMasahiro Yamada2020-04-271-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of arch directories in Linux are biarch, that is, a single arch/*/ directory supports both 32-bit and 64-bit. In old days of Linux, they started as separated directories. arm/arm64 is the exceptional case, but the other architectures were unified. e.g.) arch/i386, arch/x86_64 -> arch/x86 arch/sh, arch/sh64 -> arch/sh arch/sparc, arch/sparc64 -> arch/sparc Linux commit 6752ed90da03 ("Kbuild: allow arch/xxx to use a different source path") introduced SRCARCH to point to the arch directory, still allowing to pass in the former ARCH=i386 or ARCH=x86_64. The top Makefile in Linux converts ARCH to SRCARCH as follows: # Additional ARCH settings for x86 ifeq ($(ARCH),i386) SRCARCH := x86 endif ifeq ($(ARCH),x86_64) SRCARCH := x86 endif So, if you follow the upstream Kbuild convention, using arch/$(SRCARCH) is the correct way to point to the arch directory. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: swap the include order of arch Makefile and auto.conf.cmdMasahiro Yamada2020-04-271-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include include/config/auto.conf arch/$(ARCH)/Makefile include/config/auto.conf.cmd in this order, which is the same as the current Linux does. auto.conf.cmd contains the environment variables that were referenced from Kconfig files. If an environment variable defined in arch Makefile is referenced from Kconfig files, Kbuild would end up with eternal synconfig loop. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: remove meaningless headers_check from help targetMasahiro Yamada2020-04-271-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | This is never shown because include/asm-$(ARCH)/Kbuild does not exist. headers_check does not make any sense for barebox. Linux also deprecated headers_check by commit 7ecaf069da52 ("kbuild: move headers_check rule to usr/include/Makefile"). Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kconfig: update to Linux 5.7-rc2Masahiro Yamada2020-04-271-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous sync was Linux 5.5. This updates Kconfig to Linux 5.7-rc2. Highlights: - add yes2modconfig and mod2yesconfig, which are useful for coping with syzbot configs in Linux - remove include/config/tristate.conf - show more precise help - fix various issues of 'make xconfig' Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: prefix compiler flag variables with KBUILD_Masahiro Yamada2020-04-271-24/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In old days, Linux also used to use well-known variables such CFLAGS, CPPFLAGS, etc. They were prefixed with KBUILD_ presumably for preventing users from overriding them accidentally. Rename as follows: CFLAGS -> KBUILD_CFLAGS AFLAGS -> KBUILD_AFLAGS CPPFLAGS -> KBUILD_CPPFLAGS LDFLAGS -> KBUILD_LDFLAGS HOSTCFLAGS -> KBUILD_HOSTCFLAGS HOSTCXXFLAGS -> KBUILD_HOSTCXXFLAGS HOSTLDFLAGS -> KBUILD_HOSTLDFLAGS HOST_LOADLIBES -> KBUILD_HOSTLDLIBS HOSTCFLAGS, HOSTCXXFLAGS, HOSTLDFLAGS, HOSTLDLIBS are re-used to allow users to pass-in additional flags to the host compiler. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2020.05.0v2020.05.0Sascha Hauer2020-05-131-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/arm'Sascha Hauer2020-04-161-0/+4
|\
| * kbuild: Allow building with ARCH set to "arm64"Andrey Smirnov2020-04-011-0/+4
| | | | | | | | | | | | | | | | | | Allow building with ARCH set to "arm64" so that Barebox for AArch64 can be built with same environment settings one would use for building Linux kernel. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2020.04.0v2020.04.0Sascha Hauer2020-04-151-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2020-03-181-27/+11
|\
| * kbuild: replace barebox-all with BAREBOX_OBJSMasahiro Yamada2020-03-111-4/+3
| | | | | | | | | | | | | | Replace $(barebox-all) with $(BAREBOX_OBJS), then delete barebox-all. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: rename barebox-{common, lds} to BAREBOX_{OBJS, LDS}Masahiro Yamada2020-03-111-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit renamed barebox-pbl-common because you cannot export a variable that contain hyphens. These variables are not exported for now. I am just renaming them for consistency. barebox-common -> BAREBOX_OBJS barebox-lds -> BAREBOX_LDS If barebox moves the link rules into scripts/link-barebox.sh like Linux did, these two must be exported anyway. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: rename barebox-pbl-common to BAREBOX_PBL_OBJSMasahiro Yamada2020-03-111-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'export barebox-pbl-common' does not work reliably because hyphens are disallowed in shell variables. This caused a problem in Linux in the past. See Linux commit 2bfbe7881ee0 ("kbuild: Do not use hyphen in exported variable name"). The same problem occurs when you build barebox with O= and the directory path to the source tree contains a shell special character like '~'. The maintainer of GNU Make stated that there is no consistent way to export variables that do not meet the shell's naming criteria. (https://savannah.gnu.org/bugs/?55719) Consequently, you cannot use hyphens in exported variables. Rename barebox-pbl-common to BAREBOX_PBL_OBJS. I named it after KBUILD_VMLINUX_OBJS in the Linux top Makefile. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: remove dead code for modpostMasahiro Yamada2020-03-111-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rule_barebox-modpost is dead code since it is not invoked by anyone. $(call barebox-modpost) is dead code too since there is no variable named 'barebox-modpost'. We could fix it to $(call rule_barebox-modpost) to invoke the rules, but I hesitate to enable the code that has never been tested. barebox-init, barebox-main are not set by anyone, so this code does not seem to work. The code is completely out of sync from the upstream Linux, so there is no good reason to keep this rotten code. If barebox needs modpost, this should be re-implemented correctly. (preferably, by re-syncing with the latest Linux) Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: remove unused barebox-headMasahiro Yamada2020-03-111-2/+2
| | | | | | | | | | | | | | This is not set by anyone. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2020.03.0v2020.03.0Sascha Hauer2020-03-181-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2020-02-181-0/+2
|\
| * images: Use separate LDFLAGS for PBLChristian Eggers2020-02-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When setting CONFIG_PBL_RELOCATABLE=y (selected by PBL_MULTI_IMAGES) and CONFIG_RELOCATABLE=n (trying to reduce image size), the PBL is also linked with "-static" instead of "-pie". The result is a non-working PBL. As a side effect, also get rid of erroneous "-Map barebox.map" when linking the PBL. Only changed for ARM, are any other platforms affected? Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2020.02.0v2020.02.0Sascha Hauer2020-02-171-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Release v2020.01.0v2020.01.0Sascha Hauer2020-01-141-2/+2
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Release v2019.12.0v2019.12.0Sascha Hauer2019-12-091-1/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Release v2019.11.0v2019.11.0Sascha Hauer2019-11-071-1/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/arm'Sascha Hauer2019-10-171-1/+1
|\
| * ARM: Merge single pbl with multi pblSascha Hauer2019-10-011-1/+1
| | | | | | | | | | | | | | | | | | So far we have two different implementations for PBL: One for a single PBL and one for multiple images. This patch implements the single PBL case as a special case of the multi PBL case. With this the single PBL becomes a multi PBL image with the entry point start_pbl. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2019.10.0v2019.10.0Sascha Hauer2019-10-151-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* gcc-9: silence 'address-of-packed-member' warningSascha Hauer2019-09-121-0/+2
| | | | | | | | As done in the Linux Kernel. Most of the packed structures we have are optimized to not generate any unaligned accesses, so this warning produces a lot of false positives which are hard to fix in the code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/fsanitize'Sascha Hauer2019-09-121-0/+4
|\
| * common: add generic CONFIG_UBSAN plumbingAhmad Fatoum2019-09-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | -fsanitize=undefined allows compile-time instrumentation of code to detect some classes of runtime undefined behavior. In preparation for allowing arches to provide infrastructure in support of this feature, add some generic UBSAN options and associated plumbing. These are only shown in the debug menu when the arch selects the appropriate symbol. The option is named equally to their Linux counterparts. Signed-off-by: Ahmad Fatoum <ahmad@a3f.at> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2019.09.0v2019.09.0Sascha Hauer2019-09-091-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Makefile: we are on 2019.08Sascha Hauer2019-08-211-1/+1
| | | | | | | I forgot to increase the version in the Makefile for the last release. Increase the version now. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* kbuild: use -fmacro-prefix-map to make __FILE__ a relative pathMasahiro Yamada2019-08-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linux commit a73619a845d5625079cc1b3b820f44c899618388 The __FILE__ macro is used everywhere in the kernel to locate the file printing the log message, such as WARN_ON(), etc. If the kernel is built out of tree, this can be a long absolute path, like this: WARNING: CPU: 1 PID: 1 at /path/to/build/directory/arch/arm64/kernel/foo.c:... This is because Kbuild runs in the objtree instead of the srctree, then __FILE__ is expanded to a file path prefixed with $(srctree)/. Commit 9da0763bdd82 ("kbuild: Use relative path when building in a subdir of the source tree") improved this to some extent; $(srctree) becomes ".." if the objtree is a child of the srctree. For other cases of out-of-tree build, __FILE__ is still the absolute path. It also means the kernel image depends on where it was built. A brand-new option from GCC, -fmacro-prefix-map, solves this problem. If your compiler supports it, __FILE__ is the relative path from the srctree regardless of O= option. This provides more readable log and more reproducible builds. Please note __FILE__ is always an absolute path for external modules. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/Kconfig'Sascha Hauer2019-07-121-17/+24
|\
| * kconfig: update to Linux 5.2-rc4Masahiro Yamada2019-06-191-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous sync was Linux 4.20. This updates Kconfig to Linux 5.2-rc4. I adjusted the top Makefile as well because Linux commit 058507195b53 ("kbuild: move ".config not found!" message from Kconfig to Makefile") moved the .config check from Kconfig to Makefile. I also made auto.conf a mandatory include file, and remove it from the prerequisites of other targets. We are safe because Make is immediately terminated when syncconfig fails to generate auto.conf. Highlights: - The parser has no more shift/reduce conflicts - The lexer was rewritten more simply - The token lookup table was deleted - Replace license boilerplates with SPDX - Compile C files as separate units - Do not overwrite .config when the content was not changed - Lots of bug-fixes and cleanups Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Release v2019.07.0v2019.07.0Sascha Hauer2019-07-111-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2019-06-111-6/+3
|\
| * remove CONFIG_DEBUG_INFOOleksij Rempel2019-06-071-3/+1
| | | | | | | | | | | | | | | | The ELF file should have debug symbols, the binary should have no symbols any way. Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * kbuild: remove unneeded patterns from distcleanMasahiro Yamada2019-05-281-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Drop the following patterns based on Linux. [1] -size 0 Linux commit f4b129f519f1bbd191dca2bf17d1137edf941fd1 [2] '.*.cmd' Linux commit a03fcb50e816a69acffb13b5e56db75063aeba8a [3] (second) '.*.orig' '.*.rej' Linux commit f78271dfb77353c4d045f9735deebe21839fb2ed Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/macos'Sascha Hauer2019-06-111-3/+3
|\ \
| * | kbuild: suppress warnings from 'getconf LFS_*'Masahiro Yamada2019-05-281-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Suppress warnings for systems that do not recognize LFS_*. getconf: no such configuration parameter `LFS_CFLAGS' getconf: no such configuration parameter `LFS_LDFLAGS' getconf: no such configuration parameter `LFS_LIBS' Fixes: d7f14c66c273 ("kbuild: Enable Large File Support for hostprogs") Reported-by: Chen Feng <puck.chen@hisilicon.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* / Release v2019.06.0v2019.06.0Sascha Hauer2019-06-111-1/+1
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Release v2019.05.0v2019.05.0Sascha Hauer2019-05-101-1/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>