Package: uhd Version: 3.8.5-1 Followup-For: Bug #794906 User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu wily ubuntu-patch
In Ubuntu, the attached patch was applied to achieve the following: * 0099-revert-neon-changes.patch: Revert the NEON changes from upstream commit 1b149f561370687ad65e3aa644a402f00dbd16ea to fix build on arm64. This is obviously not the ideal solution, one should probably fix the NEON bits to work for both ARM architectures, but this revert doesn't change any public symbols and seems to work on armhf and arm64, so it was the path of least resistance while we're pushing through the g++5 transition. ... Adam -- System Information: Debian Release: jessie/sid APT prefers wily-updates APT policy: (500, 'wily-updates'), (500, 'wily-security'), (500, 'wily') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.1.0-3-generic (SMP w/4 CPU cores) Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru uhd-3.8.5/debian/patches/0099-revert-neon-changes.patch uhd-3.8.5/debian/patches/0099-revert-neon-changes.patch --- uhd-3.8.5/debian/patches/0099-revert-neon-changes.patch 1969-12-31 17:00:00.000000000 -0700 +++ uhd-3.8.5/debian/patches/0099-revert-neon-changes.patch 2015-08-07 16:38:09.000000000 -0600 @@ -0,0 +1,113 @@ +Description: Revert the NEON changes from upstream commit + 1b149f561370687ad65e3aa644a402f00dbd16ea to fix arm64. +Author: Adam Conrad <adcon...@ubuntu.com> +Bug-Debian: https://bugs.debian.org/794906 + +--- uhd-3.8.5.orig/host/lib/convert/CMakeLists.txt ++++ uhd-3.8.5/host/lib/convert/CMakeLists.txt +@@ -95,11 +95,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX) + ENDIF(CMAKE_COMPILER_IS_GNUCXX) + + IF(HAVE_ARM_NEON_H) +- ENABLE_LANGUAGE(ASM) +- + LIBUHD_APPEND_SOURCES( + ${CMAKE_CURRENT_SOURCE_DIR}/convert_with_neon.cpp +- ${CMAKE_CURRENT_SOURCE_DIR}/convert_neon.S + ) + ENDIF() + +--- uhd-3.8.5.orig/host/lib/convert/convert_neon.S ++++ /dev/null +@@ -1,37 +0,0 @@ +-// +-// Copyright 2014 Ettus Research LLC +-// +-// This program is free software: you can redistribute it and/or modify +-// it under the terms of the GNU General Public License as published by +-// the Free Software Foundation, either version 3 of the License, or +-// (at your option) any later version. +-// +-// This program is distributed in the hope that it will be useful, +-// but WITHOUT ANY WARRANTY; without even the implied warranty of +-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-// GNU General Public License for more details. +-// +-// You should have received a copy of the GNU General Public License +-// along with this program. If not, see <http://www.gnu.org/licenses/>. +-// +- +- .arch armv7-a +- .fpu neon +- .syntax unified +- .text +- .align 2 +- .global neon_item32_sc16_swap_16n +- .type neon_item32_sc16_swap_16n, %function +-neon_item32_sc16_swap_16n: +-.loop_swap: +- vld2.16 {q0, q1}, [r0]! +- vld2.16 {q2, q3}, [r0]! +- vswp q0, q1 +- vswp q2, q3 +- vst2.16 {q0, q1}, [r1]! +- vst2.16 {q2, q3}, [r1]! +- subs r2, #1 +- bne .loop_swap +- bx lr +- .size neon_item32_sc16_swap_16n, .-neon_item32_sc16_swap_16n +- .section .note.GNU-stack,"",%progbits +--- uhd-3.8.5.orig/host/lib/convert/convert_with_neon.cpp ++++ uhd-3.8.5/host/lib/convert/convert_with_neon.cpp +@@ -1,5 +1,5 @@ + // +-// Copyright 2011-2014 Ettus Research LLC ++// Copyright 2011-2012 Ettus Research LLC + // + // This program is free software: you can redistribute it and/or modify + // it under the terms of the GNU General Public License as published by +@@ -19,12 +19,6 @@ + #include <uhd/utils/byteswap.hpp> + #include <arm_neon.h> + +-extern "C" { +-void neon_item32_sc16_swap_16n(void *, void *, int iter); +-} +- +-static const int SIMD_WIDTH = 16; +- + using namespace uhd::convert; + + DECLARE_CONVERTER(fc32, 1, sc16_item32_le, 1, PRIORITY_SIMD){ +@@ -64,31 +58,3 @@ DECLARE_CONVERTER(sc16_item32_le, 1, fc3 + + item32_sc16_to_xx<uhd::htowx>(input+i, output+i, nsamps-i, scale_factor); + } +- +-DECLARE_CONVERTER(sc16, 1, sc16_item32_le, 1, PRIORITY_SIMD){ +- const sc16_t *input = reinterpret_cast<const sc16_t *>(inputs[0]); +- item32_t *output = reinterpret_cast<item32_t *>(outputs[0]); +- +- size_t i = nsamps / SIMD_WIDTH; +- +- if (i) +- neon_item32_sc16_swap_16n((void *) input, (void *) output, i); +- +- i *= SIMD_WIDTH; +- +- xx_to_item32_sc16<uhd::htowx>(input+i, output+i, nsamps-i, scale_factor); +-} +- +-DECLARE_CONVERTER(sc16_item32_le, 1, sc16, 1, PRIORITY_SIMD){ +- const item32_t *input = reinterpret_cast<const item32_t *>(inputs[0]); +- sc16_t *output = reinterpret_cast<sc16_t *>(outputs[0]); +- +- size_t i = nsamps / SIMD_WIDTH; +- +- if (i) +- neon_item32_sc16_swap_16n((void *) input, (void *) output, i); +- +- i *= SIMD_WIDTH; +- +- item32_sc16_to_xx<uhd::wtohx>(input+i, output+i, nsamps-i, scale_factor); +-} diff -Nru uhd-3.8.5/debian/patches/series uhd-3.8.5/debian/patches/series --- uhd-3.8.5/debian/patches/series 2015-08-05 08:08:00.000000000 -0600 +++ uhd-3.8.5/debian/patches/series 2015-08-07 16:36:40.000000000 -0600 @@ -8,3 +8,4 @@ 0006-e3xx-docs-Add-a-paragraph-on-network-configuration.patch 0007-docs-Added-X3x0-LEDs-table.patch 0008-Added-NI-B2x0-VID-PID-pairs-to-udev-rules.patch +0099-revert-neon-changes.patch