From f6bd560030bea36db9a32a903a1df43cd72aafb3 Mon Sep 17 00:00:00 2001 From: Neil Schemenauer Date: Thu, 21 Oct 2021 14:38:33 -0700 Subject: [PATCH 1/2] Run smelly.py tool from $(srcdir). --- Makefile.pre.in | 2 +- Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst diff --git a/Makefile.pre.in b/Makefile.pre.in index d52f73620795c1..afa0414ce04cb4 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -2420,7 +2420,7 @@ distclean: clobber # Check that all symbols exported by libpython start with "Py" or "_Py" smelly: @DEF_MAKE_RULE@ - $(RUNSHARED) ./$(BUILDPYTHON) Tools/scripts/smelly.py + $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/smelly.py # Find files with funny names funny: diff --git a/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst b/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst new file mode 100644 index 00000000000000..f378daaeee7e2e --- /dev/null +++ b/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst @@ -0,0 +1 @@ +Run smelly.py and multissltests.py from $(srcdir). From 8261bf6f170a5700bb580bc049e0b10e28f61816 Mon Sep 17 00:00:00 2001 From: Neil Schemenauer Date: Mon, 22 Nov 2021 19:35:40 -0800 Subject: [PATCH 2/2] Don't assume pybuilddir.txt is in source dir. --- .../next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst | 2 +- Tools/scripts/smelly.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst b/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst index f378daaeee7e2e..cf5d8686b98407 100644 --- a/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst +++ b/Misc/NEWS.d/next/Build/2021-10-21-14-38-30.bpo-45561.PVqhZE.rst @@ -1 +1 @@ -Run smelly.py and multissltests.py from $(srcdir). +Run smelly.py tool from $(srcdir). diff --git a/Tools/scripts/smelly.py b/Tools/scripts/smelly.py index fb01660dea33ae..276a5ab2cc84c6 100755 --- a/Tools/scripts/smelly.py +++ b/Tools/scripts/smelly.py @@ -108,8 +108,11 @@ def check_library(library, dynamic=False): def check_extensions(): print(__file__) - srcdir = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) - filename = os.path.join(srcdir, "pybuilddir.txt") + # This assumes pybuilddir.txt is in same directory as pyconfig.h. + # In the case of out-of-tree builds, we can't assume pybuilddir.txt is + # in the source folder. + config_dir = os.path.dirname(sysconfig.get_config_h_filename()) + filename = os.path.join(config_dir, "pybuilddir.txt") try: with open(filename, encoding="utf-8") as fp: pybuilddir = fp.readline() @@ -118,7 +121,7 @@ def check_extensions(): return True print(f"Check extension modules from {pybuilddir} directory") - builddir = os.path.join(srcdir, pybuilddir) + builddir = os.path.join(config_dir, pybuilddir) nsymbol = 0 for name in os.listdir(builddir): if not name.endswith(".so"):