| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Kbuild automatically creates the output directories for O= builds.
Previously it called mkdir too much. Linux optimized this a lot.
Let's import the outcome so it works faster.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Import the following commits from Linux, and re-sync.
- 6ba7dc6616ce
"kbuild: make bison create C file and header in a single pattern rule"
- cf8dfd15e5fb
"kbuild: move flex and bison rules to Makefile.host"
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ Linux commit 5f2fb52fac15a8a8e10ce020dd532504a8abfc4e ]
In old days, the "host-progs" syntax was used for specifying host
programs. It was renamed to the current "hostprogs-y" in 2004.
It is typically useful in scripts/Makefile because it allows Kbuild to
selectively compile host programs based on the kernel configuration.
This commit renames like follows:
always -> always-y
hostprogs-y -> hostprogs
So, scripts/Makefile will look like this:
always-$(CONFIG_BUILD_BIN2C) += ...
always-$(CONFIG_KALLSYMS) += ...
...
hostprogs := $(always-y) $(always-m)
I think this makes more sense because a host program is always a host
program, irrespective of the kernel configuration. We want to specify
which ones to compile by CONFIG options, so always-y will be handier.
The "always", "hostprogs-y", "hostprogs-m" will be kept for backward
compatibility for a while.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ Linux commit 54b8ae66ae1a3454a7645d159a482c31cd89ab33 ]
Kbuild provides per-file compiler flag addition/removal:
CFLAGS_<basetarget>.o
CFLAGS_REMOVE_<basetarget>.o
AFLAGS_<basetarget>.o
AFLAGS_REMOVE_<basetarget>.o
CPPFLAGS_<basetarget>.lds
HOSTCFLAGS_<basetarget>.o
HOSTCXXFLAGS_<basetarget>.o
The <basetarget> is the filename of the target with its directory and
suffix stripped.
This syntax comes into a trouble when two files with the same basename
appear in one Makefile, for example:
obj-y += foo.o
obj-y += dir/foo.o
CFLAGS_foo.o := <some-flags>
Here, the <some-flags> applies to both foo.o and dir/foo.o
The real world problem is:
scripts/kconfig/util.c
scripts/kconfig/lxdialog/util.c
Both files are compiled into scripts/kconfig/mconf, but only the
latter should be given with the ncurses flags.
It is more sensible to use the relative path to the Makefile, like this:
obj-y += foo.o
CFLAGS_foo.o := <some-flags>
obj-y += dir/foo.o
CFLAGS_dir/foo.o := <other-flags>
At first, I attempted to replace $(basetarget) with $*. The $* variable
is replaced with the stem ('%') part in a pattern rule. This works with
most of cases, but does not for explicit rules.
For example, arch/ia64/lib/Makefile reuses rule_as_o_S in its own
explicit rules, so $* will be empty, resulting in ignoring the per-file
AFLAGS.
I introduced a new variable, target-stem, which can be used also from
explicit rules.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
| |
This is needed to resync kconfig to the latest Linux.
Refer to Linux commit 8377bd2b9ee1 ("kbuild: Rename HOST_LOADLIBES
to KBUILD_HOSTLDLIBS").
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes building on an XFS partition on a 32 bit machine:
$ armmake -C ~/gsrc/barebox O=$PWD imx_defconfig
HOSTCC scripts/basic/fixdep
fixdep: error fstat'ing depfile: scripts/basic/.fixdep.d: Value too large for defined data type
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
|
|
|
|
| |
Needed for new Kconfig.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
|
|
add missing Kconfig
|