drivers/memory: can't open emif-asm-offsets.s for writing

Message ID 20180406130030.745-1-anders.roxell@linaro.org
State New
Headers show
Series
  • drivers/memory: can't open emif-asm-offsets.s for writing
Related show

Commit Message

Anders Roxell April 6, 2018, 1 p.m.
Build failes due to that the directory isn't created before we execute
the build rule.
cc1: fatal error: can’t open ‘drivers/memory/emif-asm-offsets.s’ for
  writing: No such file or directory compilation terminated.
drivers/memory/Makefile.asm-offsets:2: recipe for target 'drivers/memory/emif-asm-offsets.s' failed
make[2]: *** [drivers/memory/emif-asm-offsets.s] Error 1
Makefile:1060: recipe for target
'arch/arm/mach-omap2' failed
make[1]: *** [arch/arm/mach-omap2] Error 2
make[1]: *** Waiting for unfinished jobs....

Current code adds a file check before checking the dependency, in
filechk it does mkdir -p $(dir $@).

Fixes: 41d9d44d7258 ("ARM: OMAP2+: pm33xx-core: Add platform code needed for PM")
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

---
 drivers/memory/Makefile.asm-offsets | 1 +
 1 file changed, 1 insertion(+)

-- 
2.16.3

Comments

santosh.shilimkar@oracle.com April 6, 2018, 4:30 p.m. | #1
On 4/6/2018 6:00 AM, Anders Roxell wrote:
> Build failes due to that the directory isn't created before we execute

> the build rule.

> cc1: fatal error: can’t open ‘drivers/memory/emif-asm-offsets.s’ for

>    writing: No such file or directory compilation terminated.

> drivers/memory/Makefile.asm-offsets:2: recipe for target 'drivers/memory/emif-asm-offsets.s' failed

> make[2]: *** [drivers/memory/emif-asm-offsets.s] Error 1

> Makefile:1060: recipe for target

> 'arch/arm/mach-omap2' failed

> make[1]: *** [arch/arm/mach-omap2] Error 2

> make[1]: *** Waiting for unfinished jobs....

> 

> Current code adds a file check before checking the dependency, in

> filechk it does mkdir -p $(dir $@).

> 

> Fixes: 41d9d44d7258 ("ARM: OMAP2+: pm33xx-core: Add platform code needed for PM")

> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

> ---

Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Masahiro Yamada April 7, 2018, 2:39 a.m. | #2
2018-04-06 22:00 GMT+09:00 Anders Roxell <anders.roxell@linaro.org>:
> Build failes due to that the directory isn't created before we execute

> the build rule.

> cc1: fatal error: can’t open ‘drivers/memory/emif-asm-offsets.s’ for

>   writing: No such file or directory compilation terminated.

> drivers/memory/Makefile.asm-offsets:2: recipe for target 'drivers/memory/emif-asm-offsets.s' failed

> make[2]: *** [drivers/memory/emif-asm-offsets.s] Error 1

> Makefile:1060: recipe for target

> 'arch/arm/mach-omap2' failed

> make[1]: *** [arch/arm/mach-omap2] Error 2

> make[1]: *** Waiting for unfinished jobs....

>

> Current code adds a file check before checking the dependency, in

> filechk it does mkdir -p $(dir $@).

>

> Fixes: 41d9d44d7258 ("ARM: OMAP2+: pm33xx-core: Add platform code needed for PM")

> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>

> ---

>  drivers/memory/Makefile.asm-offsets | 1 +

>  1 file changed, 1 insertion(+)

>

> diff --git a/drivers/memory/Makefile.asm-offsets b/drivers/memory/Makefile.asm-offsets

> index 843ff60ccb5a..70d44a9ed32a 100644

> --- a/drivers/memory/Makefile.asm-offsets

> +++ b/drivers/memory/Makefile.asm-offsets

> @@ -1,4 +1,5 @@

>  drivers/memory/emif-asm-offsets.s: drivers/memory/emif-asm-offsets.c

> +       $(call filechk,$@)

>         $(call if_changed_dep,cc_s_c)

>

>  include/generated/ti-emif-asm-offsets.h: drivers/memory/emif-asm-offsets.s FORCE

> --

> 2.16.3



Why filechk just for creating a directory?


$(Q)mkdir $(dir $@)

is enough, but still this is a bad fix.


Generating the same object from different directories
is fragile in parallel building.




-- 
Best Regards
Masahiro Yamada

Patch

diff --git a/drivers/memory/Makefile.asm-offsets b/drivers/memory/Makefile.asm-offsets
index 843ff60ccb5a..70d44a9ed32a 100644
--- a/drivers/memory/Makefile.asm-offsets
+++ b/drivers/memory/Makefile.asm-offsets
@@ -1,4 +1,5 @@ 
 drivers/memory/emif-asm-offsets.s: drivers/memory/emif-asm-offsets.c
+	$(call filechk,$@)
 	$(call if_changed_dep,cc_s_c)
 
 include/generated/ti-emif-asm-offsets.h: drivers/memory/emif-asm-offsets.s FORCE