lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+icZUXiz52bk+8bbLTuYCDLqoF9zLiV6NEjzPRgodu3FzCFLg@mail.gmail.com>
Date:   Thu, 30 Jul 2020 12:06:55 +0200
From:   Sedat Dilek <sedat.dilek@...il.com>
To:     Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...hat.com>,
        Arnaldo Carvalho de Melo <acme@...nel.org>,
        Mark Rutland <mark.rutland@....com>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Jiri Olsa <jolsa@...hat.com>,
        Namhyung Kim <namhyung@...nel.org>
Cc:     linux-kernel@...r.kernel.org, Arnd Bergmann <arnd@...db.de>
Subject: [perf] Explicitly use python[3]-[config]

Hi,

I wanted to have some detailed numbers for building a Linux-kernel
with GNU-eco-system means GNU/gcc-10 and GNU/binutils-2,35 VS.
LLVM/Clang with its utils version 11.0.0-rc1.

Arnd recommended me to use "perf stat make ...".

First, I tried to build it out of tools/perf from linux.git:

MAKE_OPTS="HOSTCC=clang-11 HOSTCXX=clang++-11 HOSTLD=ld.lld-11
HOSTAR=llvm-ar-11 CC=clang-11 LD=ld.lld-11 AR=llvm-ar-11 NM=llvm-nm-11
OBJCOPY=llvm-objcopy-11 OBJDUMP=llvm-objdump-11 OBJSIZE=llvm-size-11
READELF=llvm-readelf-11 STRIP=llvm-strip-11 LLVM_IAS=1"

LC_ALL=C make V=1 $MAKE_OPTS -C tools/ perf 2>&1 | tee ../build-perf.txt

That showed me - it is building against libpython2.

As python3 is now default for Debian/unstable (and AFAICS
Debian/testing) I wanted to build explicitly against libpython3 at its
python3-config.

This needs some hacks like (furthermore I do not want CID in my version-string):

$ cat ~/src/linux-kernel/perf.diff
diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
index 513633809c81..b4da50754b19 100644
--- a/tools/perf/Makefile.config
+++ b/tools/perf/Makefile.config
@@ -225,12 +225,13 @@ endif
 # python[2][-config] in weird combinations but always preferring
 # python2 and python2-config as per pep-0394. If we catch a
 # python[-config] in version 3, the version check will kill it.
-PYTHON2 := $(if $(call get-executable,python2),python2,python)
-override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON2))
-PYTHON2_CONFIG := \
+# XXX: Explicitly use python3[-config]. -dileks
+PYTHON3 := $(if $(call get-executable,python3),python3,python)
+override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON3))
+PYTHON3_CONFIG := \
   $(if $(call get-executable,$(PYTHON)-config),$(PYTHON)-config,python-config)
 override PYTHON_CONFIG := \
-  $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON2_CONFIG))
+  $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON3_CONFIG))

 grep-libs  = $(filter -l%,$(1))
 strip-libs  = $(filter-out -l%,$(1))
diff --git a/tools/perf/util/PERF-VERSION-GEN b/tools/perf/util/PERF-VERSION-GEN
index 59241ff342be..eed9be9a13de 100755
--- a/tools/perf/util/PERF-VERSION-GEN
+++ b/tools/perf/util/PERF-VERSION-GEN
@@ -28,6 +28,8 @@ if test -z "$TAG"
 then
        TAG=$(MAKEFLAGS= make -sC ../.. kernelversion)
 fi
+# XXX: Do not use Git Commit-ID (CID) in version string. -dileks
+CID=
 VN="$TAG$CID"
 if test -n "$CID"
 then

In Debian/unstable libpython-dev:amd64 is version 2.7.17-2 and thus
ships appropriate python[2]-config.

What are your recommendations to build explicitly against python3 and
its python3-config (here: Debian ships python3 version 3.8.5)?

I can send you my build-perf.txt if needed (approx. 830kiB).

Thanks.

Regards,
- Sedat -

[1] https://github.com/ClangBuiltLinux/linux/issues/1086#issuecomment-665540053

P.S.: Uninstall all python2 dev packages and replace them via python3
dev packages.

# diff -uprN packages_0518.txt packages_0519.txt | egrep '^[+|-]ii'
-ii libpython-dev:amd64 2.7.17-2
-ii libpython2-dev:amd64 2.7.17-2
-ii libpython2.7-dev:amd64 2.7.18-1
+ii libpython3-dev:amd64 3.8.2-3
+ii libpython3.8-dev:amd64 3.8.5-1
+ii libunwind-dev:amd64 1.2.1-11
+ii libzstd-dev:amd64 1.4.5+dfsg-3
+ii lz4 1.9.2-2
-ii python-dev 2.7.17-2
-ii python2-dev 2.7.17-2
-ii python2.7-dev 2.7.18-1
+ii python3-dev 3.8.2-3
+ii python3.8-dev 3.8.5-1
+ii systemtap-sdt-dev 4.3-1

- EOT -

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ