2022-07-11 12:58:20

by Ondrej Mosnacek

[permalink] [raw]
Subject: [PATCH] kbuild: dummy-tools: avoid tmpdir leak in dummy gcc

When passed -print-file-name=plugin, the dummy gcc script creates a
temporary directory that is never cleaned up. To avoid cluttering
$TMPDIR, instead use a static directory included in the source tree.

Fixes: 76426e238834 ("kbuild: add dummy toolchains to enable all cc-option etc. in Kconfig")
Signed-off-by: Ondrej Mosnacek <[email protected]>
---
.../dummy-tools/dummy-plugin-dir/include/plugin-version.h | 0
scripts/dummy-tools/gcc | 8 ++------
2 files changed, 2 insertions(+), 6 deletions(-)
create mode 100644 scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h

diff --git a/scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h b/scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/scripts/dummy-tools/gcc b/scripts/dummy-tools/gcc
index b2483149bbe5..7db825843435 100755
--- a/scripts/dummy-tools/gcc
+++ b/scripts/dummy-tools/gcc
@@ -96,12 +96,8 @@ fi

# To set GCC_PLUGINS
if arg_contain -print-file-name=plugin "$@"; then
- plugin_dir=$(mktemp -d)
-
- mkdir -p $plugin_dir/include
- touch $plugin_dir/include/plugin-version.h
-
- echo $plugin_dir
+ # Use $0 to find the in-tree dummy directory
+ echo "$(dirname "$(readlink -f "$0")")/dummy-plugin-dir"
exit 0
fi

--
2.36.1


2022-07-12 03:35:03

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] kbuild: dummy-tools: avoid tmpdir leak in dummy gcc

On Mon, Jul 11, 2022 at 9:09 PM Ondrej Mosnacek <[email protected]> wrote:
>
> When passed -print-file-name=plugin, the dummy gcc script creates a
> temporary directory that is never cleaned up. To avoid cluttering
> $TMPDIR, instead use a static directory included in the source tree.
>
> Fixes: 76426e238834 ("kbuild: add dummy toolchains to enable all cc-option etc. in Kconfig")
> Signed-off-by: Ondrej Mosnacek <[email protected]>
> ---

Applied to linux-kbuild. Thanks.



> .../dummy-tools/dummy-plugin-dir/include/plugin-version.h | 0
> scripts/dummy-tools/gcc | 8 ++------
> 2 files changed, 2 insertions(+), 6 deletions(-)
> create mode 100644 scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h
>
> diff --git a/scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h b/scripts/dummy-tools/dummy-plugin-dir/include/plugin-version.h
> new file mode 100644
> index 000000000000..e69de29bb2d1
> diff --git a/scripts/dummy-tools/gcc b/scripts/dummy-tools/gcc
> index b2483149bbe5..7db825843435 100755
> --- a/scripts/dummy-tools/gcc
> +++ b/scripts/dummy-tools/gcc
> @@ -96,12 +96,8 @@ fi
>
> # To set GCC_PLUGINS
> if arg_contain -print-file-name=plugin "$@"; then
> - plugin_dir=$(mktemp -d)
> -
> - mkdir -p $plugin_dir/include
> - touch $plugin_dir/include/plugin-version.h
> -
> - echo $plugin_dir
> + # Use $0 to find the in-tree dummy directory
> + echo "$(dirname "$(readlink -f "$0")")/dummy-plugin-dir"
> exit 0
> fi
>
> --
> 2.36.1
>


--
Best Regards
Masahiro Yamada