Bug 1205236

Summary: kernel FTBFS on ppc64le
Product: [Fedora] Fedora Reporter: Jakub Čajka <jcajka>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: dan, davejohansen, gansalmon, itamar, jakub, jonathan, kernel-maint, law, madhu.chinakonda, mchehab, menantea, mpolacek, pbrobinson
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: gcc-5.0.1-0.1.fc22 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1237363 (view as bug list) Environment:
Last Closed: 2015-04-21 18:40:13 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, 1206039, 1206040, 1237363    

Description Jakub Čajka 2015-03-24 13:45:09 UTC
Kernel build fails on ppc64le with:
.
.
.
BUILDING A KERNEL FOR ppc64le...
+ cd linux-4.0.0-0.rc4.git0.1.fc22.ppc64le
+ BuildKernel vmlinux vmlinux
+ MakeTarget=vmlinux
+ KernelImage=vmlinux
+ Flavour=
+ Flav=
+ InstallName=vmlinuz
+ Config=kernel-4.0.0-ppc64le.config
+ DevelDir=/usr/src/kernels/4.0.0-0.rc4.git0.1.fc22.ppc64le
+ '[' vmlinux = vmlinux ']'
+ CopyKernel=cp_vmlinux
+ KernelVer=4.0.0-0.rc4.git0.1.fc22.ppc64le
+ echo BUILDING A KERNEL FOR ppc64le...
+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -0.rc4.git0.1.fc22.ppc64le/' Makefile
+ make -s mrproper
+ cp configs/kernel-4.0.0-ppc64le.config .config
+ chmod +x scripts/sign-file
++ head -1 .config
++ cut -b 3-
+ Arch=powerpc
+ echo USING ARCH=powerpc
USING ARCH=powerpc
+ make -s ARCH=powerpc oldnoconfig
+ make -s ARCH=powerpc V=1 -j16 vmlinux
arch/powerpc/kernel/vdso32/gettimeofday.S: Assembler messages:
arch/powerpc/kernel/vdso32/gettimeofday.S:42: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:42: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:48: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:48: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:83: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:83: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:87: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:87: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/gettimeofday.S:195: Error: syntax error; found `@', expected `,'
arch/powerpc/kernel/vdso32/gettimeofday.S:195: Error: junk at end of line: `@local'
arch/powerpc/kernel/vdso32/Makefile:42: recipe for target 'arch/powerpc/kernel/vdso32/gettimeofday.o' failed
make[2]: *** [arch/powerpc/kernel/vdso32/gettimeofday.o] Error 1
scripts/Makefile.build:403: recipe for target 'arch/powerpc/kernel/vdso32' failed
make[1]: *** [arch/powerpc/kernel/vdso32] Error 2
Makefile:951: recipe for target 'arch/powerpc/kernel' failed
make: *** [arch/powerpc/kernel] Error 2
make: *** Waiting for unfinished jobs....
.
.
.
Failed build: http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2442927

This started to happened with gcc-5.0.0-0.19.fc22 and newer on ppc64le, BE seems unaffected. As last successfully built kernel (kernel-4.0.0-0.rc3.git0.1.fc22) fails same way with newer gcc, this makes me believe this is more probably issue in gcc, than in kernel.

Comment 1 Dan Horák 2015-03-24 13:50:36 UTC
both the failed and successful builds used binutils-2.25-5.fc22.ppc64le

Comment 2 Marek Polacek 2015-03-24 13:52:33 UTC
Is that reproducible?  Can you try compiling just the arch/powerpc/kernel/vdso32/gettimeofday.S file?

Comment 3 Jakub Jelinek 2015-03-24 13:56:12 UTC
The problem is that powerpc64le is not a multilib target, we don't really support -m32 on ppc64le.
So, it is a kernel bug (or kernel configuration bug) to attempt to compile 32-bit ppc64le code with it.
Only ppc64 big endian supports multilib (though in Fedora in a very limited way, as no 32-bit packages are built these days).

Comment 4 Menanteau Guy 2015-03-24 17:16:27 UTC
Also you can have a look to https://bugs.launchpad.net/ubuntu/trusty/+source/linux/+bug/1433809 to find a bypass

Comment 5 Dan Horák 2015-03-26 17:18:03 UTC
So not only kernel is affected by the gcc change, but also grub2 (http://ppc.koji.fedoraproject.org/koji/taskinfo?taskID=2449339). And we will need some solution ...

Comment 6 Dan Horák 2015-04-08 11:45:44 UTC
Jakub, seems that without the 32-bit support on LE we are stuck :-( Can you add it back in the next gcc build? We have no mean to workaround the problems for F-22, not sure about F-23.

Comment 7 Dan Horák 2015-04-08 12:43:05 UTC
As fixing the kernel will take time and the grub2 situation is completely unclear, I propose to add the necessary options from
https://bugs.launchpad.net/ubuntu/trusty/+source/linux/+bug/1433809/comments/2
to our gcc5

Comment 8 Jeff Law 2015-04-08 16:55:05 UTC
Could we enable just the 32 bit code generator without the multilibs?  Would that address the problem?

Comment 9 Peter Robinson 2015-04-08 16:59:25 UTC
(In reply to Jeff Law from comment #8)
> Could we enable just the 32 bit code generator without the multilibs?  Would
> that address the problem?

Yes, I believe so, we don't need multilib.

Comment 10 Dan Horák 2015-04-08 17:51:49 UTC
the options recommended by Alan Modra are
--enable-targets=powerpcle-linux --disable-multilib

Comment 11 Dan Horák 2015-04-14 06:47:39 UTC
kernel now builds again (http://ppc.koji.fedoraproject.org/koji/buildinfo?buildID=302160)

Comment 12 Fedora Update System 2015-04-14 06:58:47 UTC
gcc-5.0.1-0.1.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/gcc-5.0.1-0.1.fc22

Comment 13 Fedora Update System 2015-04-21 18:40:13 UTC
gcc-5.0.1-0.1.fc22, libtool-2.4.2-33.fc22 has been pushed to the Fedora 22 stable repository.  If problems still persist, please make note of it in this bug report.