Bug 1227260
Summary: | kernel build failure on ppc64le | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Than Ngo <than> |
Component: | kernel | Assignee: | Kernel Maintainer List <kernel-maint> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 23 | CC: | dan, gansalmon, itamar, jonathan, kernel-maint, madhu.chinakonda, mchehab |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ppc64le | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-01-20 13:08:14 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1051573 |
Description
Than Ngo
2015-06-02 09:19:13 UTC
The error is not a clear kernel issue, but more a toolchain one (no 32-bit environment on ppc64le). It is related to the use of 32-bit code in 64-bit kernel, see also bug #1205236. Probably time to clean the kernel buildsystem so it is not trying to build 32-bit vdso support on pure 64-bit kernel. There is even an option for it - http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/tools/perf/Makefile.perf#n64 i created 2 solutions to fix the above issue. I attach both so you can review. 1. solution diff -Nur linux-4.0/tools/perf/config/Makefile.than linux-4.0/tools/perf/config/Makefile --- linux-4.0/tools/perf/config/Makefile.than 2015-06-02 11:58:17.525763988 +0200 +++ linux-4.0/tools/perf/config/Makefile 2015-06-02 12:31:04.898865043 +0200 @@ -642,6 +642,9 @@ CFLAGS += -DHAVE_KVM_STAT_SUPPORT endif +ifeq ($(ARCH),ppc64le) + NO_PERF_READ_VDSO32 := 1 +endif ifeq (${IS_64_BIT}, 1) ifndef NO_PERF_READ_VDSO32 $(call feature_check,compile-32) 2. solution diff --git a/kernel.spec b/kernel.spec index de76387..ad55636 100644 --- a/kernel.spec +++ b/kernel.spec @@ -351,7 +351,7 @@ Group: System Environment/Kernel License: GPLv2 and Redistributable, no modification permitted URL: http://www.kernel.org/ Version: %{rpmversion} -Release: %{pkg_release} +Release: %{pkg_release}.than # DO NOT CHANGE THE 'ExclusiveArch' LINE TO TEMPORARILY EXCLUDE AN ARCHITECTURE BUILD. # SET %%nobuildarches (ABOVE) INSTEAD ExclusiveArch: %{all_x86} x86_64 ppc64 ppc64p7 s390 s390x %{arm} aarch64 ppc64le @@ -1746,8 +1746,13 @@ BuildKernel %make_target %kernel_image %{pae} BuildKernel %make_target %kernel_image %endif +%ifarch ppc64le +# no 32-bit environment on ppc64le, so disable it +%define no32bit NO_PERF_READ_VDSO32=1 +%endif + %global perf_make \ - make -s %{?cross_opts} %{?_smp_mflags} -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} + make -s %{?cross_opts} %{?_smp_mflags} -C tools/perf V=1 %{?no32bit} WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} %if %{with_perf} # perf %{perf_make} DESTDIR=$RPM_BUILD_ROOT all I went with solution #2 for now so we don't have to carry a patch. Once the patch works its way upstream we can drop it. |