[PATCH] Kbuild: include arch/ Makefile before other directories

Ahmad Fatoum a.fatoum at pengutronix.de
Tue Jun 13 01:04:46 PDT 2023


Hi,

On 05.06.23 08:37, Ahmad Fatoum wrote:
> Unless overridden by SORT*, LD will place sections matched by wildcards
> in the order they were seen in the link. So far, this meant that
> arch/ initcalls and device trees compiled into barebox proper, were
> always last.
> 
> For platforms with PBL or with only one device tree in barebox proper,
> this didn't matter much, but when enabling the of_manipulation selftest,
> a second device tree would be built into barebox on kvx, openrisc and
> some MIPS.
> 
> Because all directories appear before arch/, this had the effect that
> on kvx, openrisc and some MIPS, __dtb_start would end up pointing at the
> test's device tree instead of the board device tree breaking the build.
> 
> Switching the affected platforms to use PBL would be one fix for the
> issue, but there's a simple one: let's do what Linux does in its
> top-level Kbuild file and have arch/ not be the last in sequence.
> 
> This may fause fallout for code that depended on specific ordering of
> initcalls or other linker-defined lists, which would need to be fixed.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> While a fix, I think this needs to sit a while in next first.

Any feedback?

> ---
>  Makefile | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 711cba7bed29..4fdb8f1b41af 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -586,11 +586,12 @@ endif
>  # We need some generic definitions.
>  include $(srctree)/scripts/Makefile.lib
>  
> -# Objects we will link into barebox / subdirs we need to visit
> -common-y		:= common/ drivers/ commands/ lib/ crypto/ net/ fs/ firmware/ test/
>  
> +# Objects we will link into barebox / subdirs we need to visit
>  include $(srctree)/arch/$(SRCARCH)/Makefile
>  
> +common-y		+= common/ drivers/ commands/ lib/ crypto/ net/ fs/ firmware/ test/
> +
>  ifdef need-config
>  ifdef may-sync-config
>  # Read in dependencies to all Kconfig* files, make sure to run syncconfig if

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list