Re: [PATCH V2] scripts: fix the sys path for gdb scripts

From: Jan Kiszka
Date: Fri Nov 27 2015 - 02:04:28 EST


On 2015-11-27 07:41, yalin wang wrote:
> we insert __file__'s real path into sys.path,
> so that no matter we import the vmlinux-gdb.py from $OUT floder or
> from source code folder, we can always find the linux/ lib folder,
> and we don't need create link to linux/*.py files,
> remove the related make file.

NACK again - I tell you why below.

>
> Signed-off-by: yalin wang <yalin.wang2010@xxxxxxxxx>
> ---
> scripts/Makefile | 1 -
> scripts/gdb/Makefile | 1 -
> scripts/gdb/linux/Makefile | 11 -----------
> scripts/gdb/vmlinux-gdb.py | 2 +-
> 4 files changed, 1 insertion(+), 14 deletions(-)
> delete mode 100644 scripts/gdb/Makefile
> delete mode 100644 scripts/gdb/linux/Makefile
>
> diff --git a/scripts/Makefile b/scripts/Makefile
> index 2016a64..72902b5 100644
> --- a/scripts/Makefile
> +++ b/scripts/Makefile
> @@ -36,7 +36,6 @@ subdir-$(CONFIG_MODVERSIONS) += genksyms
> subdir-y += mod
> subdir-$(CONFIG_SECURITY_SELINUX) += selinux
> subdir-$(CONFIG_DTC) += dtc
> -subdir-$(CONFIG_GDB_SCRIPTS) += gdb
>
> # Let clean descend into subdirs
> subdir- += basic kconfig package
> diff --git a/scripts/gdb/Makefile b/scripts/gdb/Makefile
> deleted file mode 100644
> index 62f5f65..0000000
> --- a/scripts/gdb/Makefile
> +++ /dev/null
> @@ -1 +0,0 @@
> -subdir-y := linux
> diff --git a/scripts/gdb/linux/Makefile b/scripts/gdb/linux/Makefile
> deleted file mode 100644
> index 6cf1ecf..0000000
> --- a/scripts/gdb/linux/Makefile
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -always := gdb-scripts
> -
> -SRCTREE := $(shell cd $(srctree) && /bin/pwd)
> -
> -$(obj)/gdb-scripts:
> -ifneq ($(KBUILD_SRC),)
> - $(Q)ln -fsn $(SRCTREE)/$(obj)/*.py $(objtree)/$(obj)
> -endif
> - @:
> -
> -clean-files := *.pyc *.pyo $(if $(KBUILD_SRC),*.py)

This step I don't understand at all. Why do you want to destroy the
possibility to automatically load the scripts? Did you read
Documentation/gdb-kernel-debugging.txt in this regard?

> diff --git a/scripts/gdb/vmlinux-gdb.py b/scripts/gdb/vmlinux-gdb.py
> index ce82bf5..a9029f4 100644
> --- a/scripts/gdb/vmlinux-gdb.py
> +++ b/scripts/gdb/vmlinux-gdb.py
> @@ -13,7 +13,7 @@
>
> import os
>
> -sys.path.insert(0, os.path.dirname(__file__) + "/scripts/gdb")
> +sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))

This works only so far as that (if you don't destroy the link) the main
script will still find its modules. However, *.pyc files are then
generated in the source tree, no longer in the output dirs. The code is
designed to prevent this.

You still don't explain to us why the existing code doesn't work for you
and how you prefer to use it instead.

Jan

--
Siemens AG, Corporate Technology, CT RTC ITP SES-DE
Corporate Competence Center Embedded Linux
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/