[PATCH 2/4] Makefile; change to using .carray.c for carray files

Anup Patel anup at brainfault.org
Wed Jul 3 23:43:42 PDT 2024


On Mon, Jul 1, 2024 at 7:41 PM Ben Dooks <ben.dooks at codethink.co.uk> wrote:
>
> We would like to clean any files generated by the carray
> scripts by just searching for the filename as the current
> make system turns f.carray into f.o. Change to make the
> make system turn f.carray into f.carray.o
>
> note, command to go through .mk files changing the .o
> in the .mk files is:
> find . -type f -name "*.carray" | xargs -t -I fname /bin/bash -x -c ' fn=`basename -s .carray fname`; echo "$fn"; sed -i `dirname fname `/objects.mk -e s/"$fn".o/"$fn".carray.o/g'
>
> Link: https://patchwork.ozlabs.org/project/opensbi/patch/20240401213438.590209-2-ivan.orlov0322@gmail.com/
> Reported-by: Ivan Orlov <ivan.orlov0322 at gmail.com>
> Suggested-bu: Andrew Jones <ajones at ventanamicro.com>
> Signed-off-by: Ben Dooks <ben.dooks at codethink.co.uk>
> ---
>  Makefile                     | 6 +++---
>  lib/sbi/objects.mk           | 2 +-
>  lib/sbi/tests/objects.mk     | 2 +-
>  lib/utils/gpio/objects.mk    | 2 +-
>  lib/utils/i2c/objects.mk     | 2 +-
>  lib/utils/ipi/objects.mk     | 2 +-
>  lib/utils/irqchip/objects.mk | 2 +-
>  lib/utils/regmap/objects.mk  | 2 +-
>  lib/utils/reset/objects.mk   | 2 +-
>  lib/utils/serial/objects.mk  | 2 +-
>  lib/utils/timer/objects.mk   | 2 +-
>  platform/generic/objects.mk  | 2 +-
>  12 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 7df39b4..2d964ec 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -519,7 +519,7 @@ $(build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_AUTOHEADER)
>         $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER))
>         $(call compile_gen_dep,$@,.o,$(@:.dep=.c))
>
> -$(build_dir)/%.c: $(src_dir)/%.carray
> +$(build_dir)/%.carray.c: $(src_dir)/%.carray
>         $(call compile_carray,$@,$<)
>
>  $(build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_AUTOHEADER)
> @@ -547,7 +547,7 @@ $(platform_build_dir)/%.dep: $(platform_src_dir)/%.carray $(KCONFIG_AUTOHEADER)
>         $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER))
>         $(call compile_gen_dep,$@,.o,$(@:.dep=.c))
>
> -$(platform_build_dir)/%.c: $(platform_src_dir)/%.carray
> +$(platform_build_dir)/%.carray.c: $(platform_src_dir)/%.carray
>         $(call compile_carray,$@,$<)
>
>  $(platform_build_dir)/%.dep: $(platform_src_dir)/%.c $(KCONFIG_AUTOHEADER)
> @@ -590,7 +590,7 @@ $(platform_build_dir)/%.dep: $(src_dir)/%.carray $(KCONFIG_AUTOHEADER)
>         $(call compile_gen_dep,$@,.c,$< $(KCONFIG_AUTOHEADER))
>         $(call compile_gen_dep,$@,.o,$(@:.dep=.c))
>
> -$(platform_build_dir)/%.c: $(src_dir)/%.carray
> +$(platform_build_dir)/%.carray.c: $(src_dir)/%.carray
>         $(call compile_carray,$@,$<)
>
>  $(platform_build_dir)/%.dep: $(src_dir)/%.c $(KCONFIG_AUTOHEADER)

The top-level Makefile also needs the following change otherwise OpenSBI breaks:

diff --git a/Makefile b/Makefile
index 2d964ec..55523b1 100644
--- a/Makefile
+++ b/Makefile
@@ -489,7 +489,7 @@ compile_d2c = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
             $(src_dir)/scripts/d2c.sh -i $(6) -a $(D2C_ALIGN_BYTES)
-p $(D2C_NAME_PREFIX) -t $(D2C_PADDING_BYTES) > $(1)
 compile_carray = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
             echo " CARRAY    $(subst $(build_dir)/,,$(1))"; \
-            $(eval CARRAY_VAR_LIST := $(carray-$(subst .c,,$(shell
basename $(1)))-y)) \
+            $(eval CARRAY_VAR_LIST := $(carray-$(subst
.carray.c,,$(shell basename $(1)))-y)) \
             $(src_dir)/scripts/carray.sh -i $(2) -l "$(CARRAY_VAR_LIST)" > $(1)
 compile_gen_dep = $(CMD_PREFIX)mkdir -p `dirname $(1)`; \
             echo " GEN-DEP   $(subst $(build_dir)/,,$(1))"; \

I have squashed the above change in this patch and pushed it again.

Regards,
Anup

> diff --git a/lib/sbi/objects.mk b/lib/sbi/objects.mk
> index 211abad..535aa70 100644
> --- a/lib/sbi/objects.mk
> +++ b/lib/sbi/objects.mk
> @@ -13,7 +13,7 @@ libsbi-objs-y += riscv_hardfp.o
>  libsbi-objs-y += riscv_locks.o
>
>  libsbi-objs-y += sbi_ecall.o
> -libsbi-objs-y += sbi_ecall_exts.o
> +libsbi-objs-y += sbi_ecall_exts.carray.o
>
>  # The order of below extensions is performance optimized
>  carray-sbi_ecall_exts-$(CONFIG_SBI_ECALL_TIME) += ecall_time
> diff --git a/lib/sbi/tests/objects.mk b/lib/sbi/tests/objects.mk
> index 8f27289..369b282 100644
> --- a/lib/sbi/tests/objects.mk
> +++ b/lib/sbi/tests/objects.mk
> @@ -1,5 +1,5 @@
>  libsbi-objs-$(CONFIG_SBIUNIT) += tests/sbi_unit_test.o
> -libsbi-objs-$(CONFIG_SBIUNIT) += tests/sbi_unit_tests.o
> +libsbi-objs-$(CONFIG_SBIUNIT) += tests/sbi_unit_tests.carray.o
>
>  carray-sbi_unit_tests-$(CONFIG_SBIUNIT) += bitmap_test_suite
>  libsbi-objs-$(CONFIG_SBIUNIT) += tests/sbi_bitmap_test.o
> diff --git a/lib/utils/gpio/objects.mk b/lib/utils/gpio/objects.mk
> index 76647a5..5210683 100644
> --- a/lib/utils/gpio/objects.mk
> +++ b/lib/utils/gpio/objects.mk
> @@ -8,7 +8,7 @@
>  #
>
>  libsbiutils-objs-$(CONFIG_FDT_GPIO) += gpio/fdt_gpio.o
> -libsbiutils-objs-$(CONFIG_FDT_GPIO) += gpio/fdt_gpio_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_GPIO) += gpio/fdt_gpio_drivers.carray.o
>
>  carray-fdt_gpio_drivers-$(CONFIG_FDT_GPIO_DESIGNWARE) += fdt_gpio_designware
>  libsbiutils-objs-$(CONFIG_FDT_GPIO_DESIGNWARE) += gpio/fdt_gpio_designware.o
> diff --git a/lib/utils/i2c/objects.mk b/lib/utils/i2c/objects.mk
> index 5f7a79f..d34d664 100644
> --- a/lib/utils/i2c/objects.mk
> +++ b/lib/utils/i2c/objects.mk
> @@ -10,7 +10,7 @@
>  libsbiutils-objs-$(CONFIG_I2C) += i2c/i2c.o
>
>  libsbiutils-objs-$(CONFIG_FDT_I2C) += i2c/fdt_i2c.o
> -libsbiutils-objs-$(CONFIG_FDT_I2C) += i2c/fdt_i2c_adapter_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_I2C) += i2c/fdt_i2c_adapter_drivers.carray.o
>
>  carray-fdt_i2c_adapter_drivers-$(CONFIG_FDT_I2C_SIFIVE) += fdt_i2c_adapter_sifive
>  libsbiutils-objs-$(CONFIG_FDT_I2C_SIFIVE) += i2c/fdt_i2c_sifive.o
> diff --git a/lib/utils/ipi/objects.mk b/lib/utils/ipi/objects.mk
> index 999e7bd..d1c94af 100644
> --- a/lib/utils/ipi/objects.mk
> +++ b/lib/utils/ipi/objects.mk
> @@ -11,7 +11,7 @@ libsbiutils-objs-$(CONFIG_IPI_MSWI) += ipi/aclint_mswi.o
>  libsbiutils-objs-$(CONFIG_IPI_PLICSW) += ipi/andes_plicsw.o
>
>  libsbiutils-objs-$(CONFIG_FDT_IPI) += ipi/fdt_ipi.o
> -libsbiutils-objs-$(CONFIG_FDT_IPI) += ipi/fdt_ipi_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_IPI) += ipi/fdt_ipi_drivers.carray.o
>
>  carray-fdt_ipi_drivers-$(CONFIG_FDT_IPI_MSWI) += fdt_ipi_mswi
>  libsbiutils-objs-$(CONFIG_FDT_IPI_MSWI) += ipi/fdt_ipi_mswi.o
> diff --git a/lib/utils/irqchip/objects.mk b/lib/utils/irqchip/objects.mk
> index e458891..a13b384 100644
> --- a/lib/utils/irqchip/objects.mk
> +++ b/lib/utils/irqchip/objects.mk
> @@ -8,7 +8,7 @@
>  #
>
>  libsbiutils-objs-$(CONFIG_FDT_IRQCHIP) += irqchip/fdt_irqchip.o
> -libsbiutils-objs-$(CONFIG_FDT_IRQCHIP) += irqchip/fdt_irqchip_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_IRQCHIP) += irqchip/fdt_irqchip_drivers.carray.o
>
>  carray-fdt_irqchip_drivers-$(CONFIG_FDT_IRQCHIP_APLIC) += fdt_irqchip_aplic
>  libsbiutils-objs-$(CONFIG_FDT_IRQCHIP_APLIC) += irqchip/fdt_irqchip_aplic.o
> diff --git a/lib/utils/regmap/objects.mk b/lib/utils/regmap/objects.mk
> index 5bd139f..43487a5 100644
> --- a/lib/utils/regmap/objects.mk
> +++ b/lib/utils/regmap/objects.mk
> @@ -8,7 +8,7 @@
>  #
>
>  libsbiutils-objs-$(CONFIG_FDT_REGMAP) += regmap/fdt_regmap.o
> -libsbiutils-objs-$(CONFIG_FDT_REGMAP) += regmap/fdt_regmap_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_REGMAP) += regmap/fdt_regmap_drivers.carray.o
>
>  carray-fdt_regmap_drivers-$(CONFIG_FDT_REGMAP_SYSCON) += fdt_regmap_syscon
>  libsbiutils-objs-$(CONFIG_FDT_REGMAP_SYSCON) += regmap/fdt_regmap_syscon.o
> diff --git a/lib/utils/reset/objects.mk b/lib/utils/reset/objects.mk
> index 44944ca..a84336c 100644
> --- a/lib/utils/reset/objects.mk
> +++ b/lib/utils/reset/objects.mk
> @@ -8,7 +8,7 @@
>  #
>
>  libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset.o
> -libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_RESET) += reset/fdt_reset_drivers.carray.o
>
>  carray-fdt_reset_drivers-$(CONFIG_FDT_RESET_ATCWDT200) += fdt_reset_atcwdt200
>  libsbiutils-objs-$(CONFIG_FDT_RESET_ATCWDT200) += reset/fdt_reset_atcwdt200.o
> diff --git a/lib/utils/serial/objects.mk b/lib/utils/serial/objects.mk
> index 1e6bd2e..7c973c8 100644
> --- a/lib/utils/serial/objects.mk
> +++ b/lib/utils/serial/objects.mk
> @@ -8,7 +8,7 @@
>  #
>
>  libsbiutils-objs-$(CONFIG_FDT_SERIAL) += serial/fdt_serial.o
> -libsbiutils-objs-$(CONFIG_FDT_SERIAL) += serial/fdt_serial_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_SERIAL) += serial/fdt_serial_drivers.carray.o
>
>  carray-fdt_serial_drivers-$(CONFIG_FDT_SERIAL_CADENCE) += fdt_serial_cadence
>  libsbiutils-objs-$(CONFIG_FDT_SERIAL_CADENCE) += serial/fdt_serial_cadence.o
> diff --git a/lib/utils/timer/objects.mk b/lib/utils/timer/objects.mk
> index 9360a76..92e0927 100644
> --- a/lib/utils/timer/objects.mk
> +++ b/lib/utils/timer/objects.mk
> @@ -11,7 +11,7 @@ libsbiutils-objs-$(CONFIG_TIMER_MTIMER) += timer/aclint_mtimer.o
>  libsbiutils-objs-$(CONFIG_TIMER_PLMT) += timer/andes_plmt.o
>
>  libsbiutils-objs-$(CONFIG_FDT_TIMER) += timer/fdt_timer.o
> -libsbiutils-objs-$(CONFIG_FDT_TIMER) += timer/fdt_timer_drivers.o
> +libsbiutils-objs-$(CONFIG_FDT_TIMER) += timer/fdt_timer_drivers.carray.o
>
>  carray-fdt_timer_drivers-$(CONFIG_FDT_TIMER_MTIMER) += fdt_timer_mtimer
>  libsbiutils-objs-$(CONFIG_FDT_TIMER_MTIMER) += timer/fdt_timer_mtimer.o
> diff --git a/platform/generic/objects.mk b/platform/generic/objects.mk
> index c215935..c4a8fee 100644
> --- a/platform/generic/objects.mk
> +++ b/platform/generic/objects.mk
> @@ -19,7 +19,7 @@ platform-runcmd = qemu-system-riscv$(PLATFORM_RISCV_XLEN) -M virt -m 256M \
>
>  # Objects to build
>  platform-objs-y += platform.o
> -platform-objs-y += platform_override_modules.o
> +platform-objs-y += platform_override_modules.carray.o
>
>  # Blobs to build
>  FW_DYNAMIC=y
> --
> 2.37.2.352.g3c44437643
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi



More information about the opensbi mailing list