From: Jan Rękorajski Date: Sat, 18 May 2019 10:52:41 +0000 (+0200) Subject: - fix build on x32 again X-Git-Tag: auto/th/kernel-tools-5.1.3-1 X-Git-Url: http://git.pld-linux.org/gitweb.cgi?a=commitdiff_plain;h=388d18e63d616fcf421c3a28c495fa8e63a18329;p=packages%2Fkernel-tools.git - fix build on x32 again - updated files --- diff --git a/kernel-tools.spec b/kernel-tools.spec index f453171..c1b12dc 100644 --- a/kernel-tools.spec +++ b/kernel-tools.spec @@ -13,9 +13,6 @@ %bcond_without multilib # multilib perf support %bcond_without usbip # usbip utils -%ifarch x32 -%undefine with_libunwind -%endif %ifnarch %{x8664} %undefine with_multilib %endif @@ -38,6 +35,7 @@ Patch0: https://www.kernel.org/pub/linux/kernel/v5.x/patch-%{version}.xz # Patch0-md5: 06ee36333ce2f480ae848320790cebc1 %endif Patch1: x32.patch +Patch2: regex.patch Patch3: %{name}-perf-update.patch URL: http://www.kernel.org/ BuildRequires: bison @@ -144,6 +142,22 @@ Development files for the cpupower library. %description cpupower-libs-devel -l pl.UTF-8 Pliki programistyczne biblioteki cpupower. +%package -n bash-completion-cpupower +Summary: Bash completion for cpupower tools +Summary(pl.UTF-8): Bashowe uzupełnianie parametrów dla poleceń cpupower +Group: Applications/Shells +Requires: %{name}-cpupower = %{version}-%{release} +Requires: bash-completion +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description -n bash-completion-cpupower +Bash completion for cpupower tools. + +%description -n bash-completion-cpupower -l pl.UTF-8 +Bashowe uzupełnianie parametrów dla poleceń cpupower. + %package hv Summary: Hyper-V virtualization tools Summary(pl.UTF-8): Narzędzia do wirtualizacji Hyper-V @@ -376,6 +390,7 @@ cd linux-%{basever} %endif %patch1 -p1 +%patch2 -p1 %patch3 -p1 %{__sed} -i -e '/^CFLAGS = /s/ -g / $(OPTFLAGS) /' tools/hv/Makefile @@ -433,7 +448,7 @@ CFLAGS="%{rpmcflags}" \ # perf %if %{with perf} -%{__make} -C tools/perf all man \ +%{__make} -j1 -C tools/perf all man \ %ifarch %{x8664} IS_X86_64=1 \ %{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \ @@ -537,7 +552,7 @@ install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_ %endif %if %{with perf} -%{__make} -C tools/perf -j1 install install-man \ +%{__make} -C tools/perf install install-man \ %ifarch %{x8664} IS_X86_64=1 \ %{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \ @@ -551,6 +566,7 @@ install -p tools/power/cpupower/debug/x86_64/{centrino,powernow-k8}-decode $RPM_ prefix=%{_prefix} \ perfexecdir=%{_datadir}/perf-core \ template_dir=%{_datadir}/perf-core/templates \ + bash_compdir=%{bash_compdir} \ lib=%{_lib} \ DESTDIR=$RPM_BUILD_ROOT @@ -678,6 +694,10 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/cpufreq.h %{_includedir}/cpuidle.h +%files -n bash-completion-cpupower +%defattr(644,root,root,755) +%{bash_compdir}/cpupower + %ifarch %{ix86} %{x8664} x32 %files hv %defattr(644,root,root,755) diff --git a/regex.patch b/regex.patch new file mode 100644 index 0000000..10fc967 --- /dev/null +++ b/regex.patch @@ -0,0 +1,19 @@ +--- linux-5.1/tools/perf/trace/beauty/usbdevfs_ioctl.sh.orig 2019-05-18 12:06:30.000000000 +0200 ++++ linux-5.1/tools/perf/trace/beauty/usbdevfs_ioctl.sh 2019-05-18 12:43:40.724851148 +0200 +@@ -4,14 +4,14 @@ + [ $# -eq 1 ] && header_dir=$1 || header_dir=tools/include/uapi/linux/ + + printf "static const char *usbdevfs_ioctl_cmds[] = {\n" +-regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)[[:space:]]+_IO[WR]{0,2}\([[:space:]]*'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*" ++regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)[[:space:]]+_IO[WR]*\([[:space:]]*'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*" + egrep $regex ${header_dir}/usbdevice_fs.h | egrep -v 'USBDEVFS_\w+32[[:space:]]' | \ + sed -r "s/$regex/\2 \1/g" | \ + sort | xargs printf "\t[%s] = \"%s\",\n" + printf "};\n\n" + printf "#if 0\n" + printf "static const char *usbdevfs_ioctl_32_cmds[] = {\n" +-regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)[[:space:]]+_IO[WR]{0,2}\([[:space:]]*'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*" ++regex="^#[[:space:]]*define[[:space:]]+USBDEVFS_(\w+)[[:space:]]+_IO[WR]*\([[:space:]]*'U'[[:space:]]*,[[:space:]]*([[:digit:]]+).*" + egrep $regex ${header_dir}/usbdevice_fs.h | egrep 'USBDEVFS_\w+32[[:space:]]' | \ + sed -r "s/$regex/\2 \1/g" | \ + sort | xargs printf "\t[%s] = \"%s\",\n" diff --git a/x32.patch b/x32.patch index b8d0199..78f1cac 100644 --- a/x32.patch +++ b/x32.patch @@ -18,12 +18,14 @@ FIXME: regs_load.S need complete x32 ABI support; now it will just compile, but +endif --- linux-4.8/tools/perf/Makefile.config~ 2015-04-11 12:12:31.000000000 +0200 +++ linux-4.8/tools/perf/Makefile.config 2015-04-11 12:19:05.011244885 +0200 -@@ -41,6 +41,9 @@ +@@ -41,6 +41,11 @@ LIBUNWIND_LIBS = -lunwind-x86 -llzma -lunwind endif NO_PERF_REGS := 0 + ifeq (${IS_X32_BIT}, 1) + CFLAGS += -DHAVE_ARCH_X32_SUPPORT ++ ARCH_INCLUDE = ../../arch/x86/lib/memcpy_64.S ../../arch/x86/lib/memset_64.S ++ LIBUNWIND_LIBS = -lunwind-x86_64 -llzma -lunwind + endif endif @@ -128,3 +130,14 @@ FIXME: regs_load.S need complete x32 ABI support; now it will just compile, but } else pr_info("00:00:00.000000"); +--- linux-5.1/tools/perf/arch/x86/util/unwind-libunwind.c.orig 2019-05-06 02:42:58.000000000 +0200 ++++ linux-5.1/tools/perf/arch/x86/util/unwind-libunwind.c 2019-05-18 12:32:31.916685600 +0200 +@@ -8,7 +8,7 @@ + #include "../../util/debug.h" + #endif + +-#ifdef HAVE_ARCH_X86_64_SUPPORT ++#if defined(HAVE_ARCH_X86_64_SUPPORT) || defined(HAVE_ARCH_X32_SUPPORT) + int LIBUNWIND__ARCH_REG_ID(int regnum) + { + int id;