Bug 1278135

Summary: regression in binutils-2.25.1
Product: [Fedora] Fedora Reporter: Than Ngo <than>
Component: binutilsAssignee: Nick Clifton <nickc>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jakub, nickc, pbrobinson
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-01-14 12:13:29 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: 1071880    
Attachments:
Description Flags
ATL_dupMBmm0_4_0_b0.c none

Description Than Ngo 2015-11-04 17:49:10 UTC
atlas build fails on on ppc64 with following errors:

/usr/bin/ppc64-redhat-linux-gcc  -g -Wa,--noexecstack -fPIC -m64 -DL2SIZE=4194304 -I/builddir/build/BUILD/ATLAS/ppc64_base/include -I/builddir/build/BUILD/ATLAS/ppc64_base/..//include -I/builddir/build/BUILD/ATLAS/ppc64_base/..//include/contrib -DAdd_ -DF77_INTEGER=int -DStringSunStyle -DATL_OS_Linux -DATL_ARCH_POWER7 -DATL_VSX -DATL_AltiVec -DATL_USE64BITS -DATL_GAS_PPC -DATL_AVgcc -m64 -DWALL -DATL_NCPU=4 -DATL_UCLEANM -DATL_UCLEANN -DATL_UCLEANK -DATL_BETA=0 -c -x assembler-with-cpp ATL_dupMBmm0_4_0_b0.c
ATL_dupMBmm0_4_0_b0.c: Assembler messages:
ATL_dupMBmm0_4_0_b0.c:386: Error: junk at end of line: `0'
ATL_dupMBmm0_4_0_b0.c:388: Error: junk at end of line: `0'
ATL_dupMBmm0_4_0_b0.c:3989: Error: junk at end of line: `0'
ATL_dupMBmm0_4_0_b0.c:3991: Error: junk at end of line: `0'
dMakefile:334: recipe for target 'ATL_dupMBmm0_4_0_b0.o' failed
make[8]: *** [ATL_dupMBmm0_4_0_b0.o] Error 1

for more info please take a look at:

http://ppc.koji.fedoraproject.org/kojifiles/work/tasks/4048/2874048/build.log

it seems the upstream patch from https://sourceware.org/ml/binutils/2015-04/msg00395.html caues this issue.

Comment 1 Nick Clifton 2015-11-05 11:59:01 UTC
Hi Ngo,

  Please could you upload the ATL_dupMBmm0_4_0_b0.c for me to examine ?  (I am wondering if the assembler is actually correct, and that the problem is that the ATL_dupMBmm0_4_0_b0.c file is out of date).

Cheers
  Nick

Comment 2 Than Ngo 2015-11-05 12:47:24 UTC
Created attachment 1090050 [details]
ATL_dupMBmm0_4_0_b0.c

Comment 3 Than Ngo 2015-11-05 12:49:38 UTC
it seems the new binutitls handles dctd in different way. This assembler code works fine in 2.25.

                dcbt    0, pfA, 0
                addi    pfA, pfA, 128
                dcbt    0, pfB, 0
                addi    pfB, pfB, 128

Comment 4 Nick Clifton 2015-11-05 17:44:06 UTC
Hi Ngo,

  I am not a PowerPC architecture expert, but it looks to me like the "dcbt 0, pfA, 0" syntax is only valid on some architecture variants, not all of them.  Plus, I think that what happened between 2.25 and 2.25.1 is that the architecture checking for the DCBT instruction was tightened up.

  Hence the problem is that code in ATL_dupMBmm0_4_0_b0.c is being assembled without the correct PowerPC variant being specified on the assembler command line.  (Or maybe no architecture variant is being specified at all, and a default, basic architecture is being used ?).  

  Does this theory make sense ?  If so then maybe adding something like "-Wa,-mpower7" to the gcc command line might act as a workaround ?

Cheers
  Nick

Comment 5 Than Ngo 2015-11-13 14:13:23 UTC
Hi Nick, it seems you are right, the architecture checking for the DCBT instruction was tightened up in new binutils and adding -Wa,-mpower7 to assembler option the above assembler code built correctly.

Comment 6 Than Ngo 2016-01-14 12:13:29 UTC
it seems a bug in atlas. And the issue was fixed in latest atlas