[v2] buildtools: fix build for some mktemp
Checks
Commit Message
build error:
== Build drivers/net/tap
mktemp: cannot create temp file /tmp/dpdk.auto-config-h.sh.XXX.c:
Invalid argument
.../buildtools/auto-config-h.sh: line 86: : No such file or directory
.../drivers/net/tap/Makefile:55: recipe for target
'tap_autoconf.h.new' failed
Above error observed on Wind River Linux 8.0
`mktemp` command in that system has a restrictions to have X in
the template at the end and at least six of them.
Complied to mktemp requirements and add -xc flag to compiler to say
`temp` file is a C file
Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
v2:
* keep using mktemp, add -xc to compiler
---
buildtools/auto-config-h.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
27/10/2018 02:38, Ferruh Yigit:
> build error:
> == Build drivers/net/tap
> mktemp: cannot create temp file /tmp/dpdk.auto-config-h.sh.XXX.c:
> Invalid argument
> .../buildtools/auto-config-h.sh: line 86: : No such file or directory
> .../drivers/net/tap/Makefile:55: recipe for target
> 'tap_autoconf.h.new' failed
>
> Above error observed on Wind River Linux 8.0
>
> `mktemp` command in that system has a restrictions to have X in
> the template at the end and at least six of them.
>
> Complied to mktemp requirements and add -xc flag to compiler to say
> `temp` file is a C file
>
> Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
>
> Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> v2:
> * keep using mktemp, add -xc to compiler
> ---
> buildtools/auto-config-h.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- a/buildtools/auto-config-h.sh
> +++ b/buildtools/auto-config-h.sh
> -temp=$(mktemp -t dpdk.${0##*/}.XXX.c)
> +temp=$(mktemp -t dpdk.${0##*/}.c.XXXXXX)
It looks OK for this script.
Should we do the same kind of change for devtools/check-includes.sh?
and devtools/cocci.sh?
On 10/27/2018 12:47 AM, Thomas Monjalon wrote:
> 27/10/2018 02:38, Ferruh Yigit:
>> build error:
>> == Build drivers/net/tap
>> mktemp: cannot create temp file /tmp/dpdk.auto-config-h.sh.XXX.c:
>> Invalid argument
>> .../buildtools/auto-config-h.sh: line 86: : No such file or directory
>> .../drivers/net/tap/Makefile:55: recipe for target
>> 'tap_autoconf.h.new' failed
>>
>> Above error observed on Wind River Linux 8.0
>>
>> `mktemp` command in that system has a restrictions to have X in
>> the template at the end and at least six of them.
>>
>> Complied to mktemp requirements and add -xc flag to compiler to say
>> `temp` file is a C file
>>
>> Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
>>
>> Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> v2:
>> * keep using mktemp, add -xc to compiler
>> ---
>> buildtools/auto-config-h.sh | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> --- a/buildtools/auto-config-h.sh
>> +++ b/buildtools/auto-config-h.sh
>> -temp=$(mktemp -t dpdk.${0##*/}.XXX.c)
>> +temp=$(mktemp -t dpdk.${0##*/}.c.XXXXXX)
>
> It looks OK for this script.
>
> Should we do the same kind of change for devtools/check-includes.sh?
> and devtools/cocci.sh?
Not sure, this script is part of buildtool and required for build, so needs to
be compatible for various systems. Above are devtools and can use new mktemp.
27/10/2018 01:53, Ferruh Yigit:
> On 10/27/2018 12:47 AM, Thomas Monjalon wrote:
> > 27/10/2018 02:38, Ferruh Yigit:
> >> build error:
> >> == Build drivers/net/tap
> >> mktemp: cannot create temp file /tmp/dpdk.auto-config-h.sh.XXX.c:
> >> Invalid argument
> >> .../buildtools/auto-config-h.sh: line 86: : No such file or directory
> >> .../drivers/net/tap/Makefile:55: recipe for target
> >> 'tap_autoconf.h.new' failed
> >>
> >> Above error observed on Wind River Linux 8.0
> >>
> >> `mktemp` command in that system has a restrictions to have X in
> >> the template at the end and at least six of them.
> >>
> >> Complied to mktemp requirements and add -xc flag to compiler to say
> >> `temp` file is a C file
> >>
> >> Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
> >>
> >> Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
> >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >> ---
> >> v2:
> >> * keep using mktemp, add -xc to compiler
> >> ---
> >> buildtools/auto-config-h.sh | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> --- a/buildtools/auto-config-h.sh
> >> +++ b/buildtools/auto-config-h.sh
> >> -temp=$(mktemp -t dpdk.${0##*/}.XXX.c)
> >> +temp=$(mktemp -t dpdk.${0##*/}.c.XXXXXX)
> >
> > It looks OK for this script.
> >
> > Should we do the same kind of change for devtools/check-includes.sh?
> > and devtools/cocci.sh?
>
> Not sure, this script is part of buildtool and required for build, so needs to
> be compatible for various systems. Above are devtools and can use new mktemp.
You mean nobody will use Wind River Linux 8.0 for developing?
You are probably right :)
27/10/2018 01:53, Ferruh Yigit:
> On 10/27/2018 12:47 AM, Thomas Monjalon wrote:
> > 27/10/2018 02:38, Ferruh Yigit:
> >> build error:
> >> == Build drivers/net/tap
> >> mktemp: cannot create temp file /tmp/dpdk.auto-config-h.sh.XXX.c:
> >> Invalid argument
> >> .../buildtools/auto-config-h.sh: line 86: : No such file or directory
> >> .../drivers/net/tap/Makefile:55: recipe for target
> >> 'tap_autoconf.h.new' failed
> >>
> >> Above error observed on Wind River Linux 8.0
> >>
> >> `mktemp` command in that system has a restrictions to have X in
> >> the template at the end and at least six of them.
> >>
> >> Complied to mktemp requirements and add -xc flag to compiler to say
> >> `temp` file is a C file
> >>
> >> Fixes: ff37ca5d3773 ("devtools: use a common prefix for temporary files")
> >>
> >> Reported-by: Shuai Zhu <shuaix.zhu@intel.com>
> >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >> ---
> >> v2:
> >> * keep using mktemp, add -xc to compiler
> >> ---
> >> buildtools/auto-config-h.sh | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> --- a/buildtools/auto-config-h.sh
> >> +++ b/buildtools/auto-config-h.sh
> >> -temp=$(mktemp -t dpdk.${0##*/}.XXX.c)
> >> +temp=$(mktemp -t dpdk.${0##*/}.c.XXXXXX)
> >
> > It looks OK for this script.
> >
> > Should we do the same kind of change for devtools/check-includes.sh?
> > and devtools/cocci.sh?
>
> Not sure, this script is part of buildtool and required for build, so needs to
> be compatible for various systems. Above are devtools and can use new mktemp.
Applied, thanks
@@ -23,7 +23,7 @@ name=${5:?define/type/function name required}
: ${CC:=cc}
-temp=$(mktemp -t dpdk.${0##*/}.XXX.c)
+temp=$(mktemp -t dpdk.${0##*/}.c.XXXXXX)
case $type in
define)
@@ -86,7 +86,7 @@ printf "\
" "$include" "$code" > "${temp}" &&
if ${CC} ${CPPFLAGS} ${EXTRA_CPPFLAGS} ${CFLAGS} ${EXTRA_CFLAGS} \
${AUTO_CONFIG_CFLAGS} \
- -c -o ${temp}.o "${temp}" 1>&${out} 2>&${err}
+ -xc -c -o ${temp}.o "${temp}" 1>&${out} 2>&${err}
then
rm -f "${temp}" "${temp}.o"
printf "\