Bug 1200836

Summary: uhd ftbfs on aarch64
Product: [Fedora] Fedora Reporter: Marcin Juszkiewicz <mjuszkie>
Component: uhdAssignee: Jaroslav Škarvada <jskarvad>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: jkaluza, jskarvad
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-11 15:48:02 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:
Attachments:
Description Flags
spec+patch
none
Proposed fix none

Description Marcin Juszkiewicz 2015-03-11 13:18:27 UTC
Created attachment 1000435 [details]
spec+patch

Description of problem:

UHD uses armv7a NEON code if arm_neon.h header is present. But this header exists also on AArch64.

Version-Release number of selected component (if applicable):

3.8.2-1

How reproducible:

always

Steps to Reproduce:
1. do a build on aarch64 (arm-koji)

Actual results:

/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S: Assembler messages:
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:18: Error: unknown architecture `armv7-a'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:19: Error: unknown pseudo-op: `.fpu'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:20: Error: unknown pseudo-op: `.syntax'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:27: Error: unknown mnemonic `vld2.16' -- `vld2.16 {q0,q1},[r0]!'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:28: Error: unknown mnemonic `vld2.16' -- `vld2.16 {q2,q3},[r0]!'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:29: Error: unknown mnemonic `vswp' -- `vswp q0,q1'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:30: Error: unknown mnemonic `vswp' -- `vswp q2,q3'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:31: Error: unknown mnemonic `vst2.16' -- `vst2.16 {q0,q1},[r1]!'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:32: Error: unknown mnemonic `vst2.16' -- `vst2.16 {q2,q3},[r1]!'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:33: Error: operand 1 should be an integer register -- `subs r2,#1'
/builddir/build/BUILD/uhd-release_003_008_002/host/lib/convert/convert_neon.S:35: Error: unknown mnemonic `bx' -- `bx lr'
/usr/bin/cmake -E cmake_progress_report /builddir/build/BUILD/uhd-release_003_008_002/host/build/CMakeFiles 39
[ 19%] lib/CMakeFiles/uhd.dir/build.make:450: recipe for target 'lib/CMakeFiles/uhd.dir/convert/convert_neon.S.o' failed
make[2]: *** [lib/CMakeFiles/uhd.dir/convert/conv

Expected results:

package builds

Additional info:

Attached fix is maybe not perfect but works.

Comment 1 Jaroslav Škarvada 2015-03-11 15:44:56 UTC
Created attachment 1000547 [details]
Proposed fix

IIRC in Fedora we are building without NEON for backward compatibility (correct me if it was changed).

Currently there are two problems:
- aarch64 is not listed in %arm macro, so the conditional for arm didn't trigger. I think aarch64 is arm and should be listed in arm. I will report this against rpm component (again, correct me if this assumption is wrong).

- it seems there is no %without macro in Fedora, so the conditional didn't trigger even with correct %arm macro

Attached patch should fix both problems.

Comment 2 Jaroslav Škarvada 2015-03-11 15:54:33 UTC
Opened bug 1200910.