<generated/at91_pm_data-offsets.h> is only generated and included by
arch/arm/mach-at91/, so it does not need to reside in the globally
visible include/generated/.
I renamed it to arch/arm/mach-at91/pm_data-offsets.h since the prefix
'at91_' is just redundant in mach-at91/.
My main motivation of this change is to avoid the race condition for
the parallel build (-j) when CONFIG_IKHEADERS is enabled.
When it is enabled, all the headers under include/ are archived into
kernel/kheaders_data.tar.xz and exposed in the sysfs.
In the parallel build, we have no idea in which order files are built.
- If at91_pm_data-offsets.h is built before kheaders_data.tar.xz,
the header will be included in the archive. Probably nobody will
use it, but it is harmless except that it will increase the archive
size needlessly.
- If kheaders_data.tar.xz is built before at91_pm_data-offsets.h,
the header will not be included in the archive. However, in the next
build, the archive will be re-generated to include the newly-found
at91_pm_data-offsets.h. This is not nice from the build system point
of view.
- If at91_pm_data-offsets.h and kheaders_data.tar.xz are built at the
same time, the corrupted header might be included in the archive,
which does not look nice either.
This commit fixes the race.
Signed-off-by: Masahiro Yamada <[email protected]>
---
arch/arm/mach-at91/.gitignore | 1 +
arch/arm/mach-at91/Makefile | 5 +++--
arch/arm/mach-at91/pm_suspend.S | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
create mode 100644 arch/arm/mach-at91/.gitignore
diff --git a/arch/arm/mach-at91/.gitignore b/arch/arm/mach-at91/.gitignore
new file mode 100644
index 000000000000..2ecd6f51c8a9
--- /dev/null
+++ b/arch/arm/mach-at91/.gitignore
@@ -0,0 +1 @@
+pm_data-offsets.h
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 31b61f0e1c07..de64301dcff2 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -19,9 +19,10 @@ ifeq ($(CONFIG_PM_DEBUG),y)
CFLAGS_pm.o += -DDEBUG
endif
-include/generated/at91_pm_data-offsets.h: arch/arm/mach-at91/pm_data-offsets.s FORCE
+$(obj)/pm_data-offsets.h: $(obj)/pm_data-offsets.s FORCE
$(call filechk,offsets,__PM_DATA_OFFSETS_H__)
-arch/arm/mach-at91/pm_suspend.o: include/generated/at91_pm_data-offsets.h
+$(obj)/pm_suspend.o: $(obj)/pm_data-offsets.h
targets += pm_data-offsets.s
+clean-files += pm_data-offsets.h
diff --git a/arch/arm/mach-at91/pm_suspend.S b/arch/arm/mach-at91/pm_suspend.S
index c751f047b116..ed57c879d4e1 100644
--- a/arch/arm/mach-at91/pm_suspend.S
+++ b/arch/arm/mach-at91/pm_suspend.S
@@ -10,7 +10,7 @@
#include <linux/linkage.h>
#include <linux/clk/at91_pmc.h>
#include "pm.h"
-#include "generated/at91_pm_data-offsets.h"
+#include "pm_data-offsets.h"
#define SRAMC_SELF_FRESH_ACTIVE 0x01
#define SRAMC_SELF_FRESH_EXIT 0x00
--
2.17.1
On 23/08/2019 11:43:45+0900, Masahiro Yamada wrote:
> <generated/at91_pm_data-offsets.h> is only generated and included by
> arch/arm/mach-at91/, so it does not need to reside in the globally
> visible include/generated/.
>
> I renamed it to arch/arm/mach-at91/pm_data-offsets.h since the prefix
> 'at91_' is just redundant in mach-at91/.
>
> My main motivation of this change is to avoid the race condition for
> the parallel build (-j) when CONFIG_IKHEADERS is enabled.
>
> When it is enabled, all the headers under include/ are archived into
> kernel/kheaders_data.tar.xz and exposed in the sysfs.
>
> In the parallel build, we have no idea in which order files are built.
>
> - If at91_pm_data-offsets.h is built before kheaders_data.tar.xz,
> the header will be included in the archive. Probably nobody will
> use it, but it is harmless except that it will increase the archive
> size needlessly.
>
> - If kheaders_data.tar.xz is built before at91_pm_data-offsets.h,
> the header will not be included in the archive. However, in the next
> build, the archive will be re-generated to include the newly-found
> at91_pm_data-offsets.h. This is not nice from the build system point
> of view.
>
> - If at91_pm_data-offsets.h and kheaders_data.tar.xz are built at the
> same time, the corrupted header might be included in the archive,
> which does not look nice either.
>
> This commit fixes the race.
>
> Signed-off-by: Masahiro Yamada <[email protected]>
> ---
>
> arch/arm/mach-at91/.gitignore | 1 +
> arch/arm/mach-at91/Makefile | 5 +++--
> arch/arm/mach-at91/pm_suspend.S | 2 +-
> 3 files changed, 5 insertions(+), 3 deletions(-)
> create mode 100644 arch/arm/mach-at91/.gitignore
>
Applied, thanks.
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com