Bug#794906: uhd 3.8 ftbfs on arm64, 3.7 built fine before on arm64

2015-08-07 Thread Adam Conrad
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.0 -0700
+++ uhd-3.8.5/debian/patches/0099-revert-neon-changes.patch	2015-08-07 16:38:09.0 -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_xxuhd::htowx(input+i, output+i, nsamps-i, scale_factor);
+ }
+-
+-DECLARE_CONVERTER(sc16, 1, sc16_item32_le, 1, PRIORITY_SIMD){
+-const sc16_t *input = reinterpret_castconst sc16_t *(inputs[0]);
+-item32_t *output = reinterpret_castitem32_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_sc16uhd::htowx(input+i, output+i, nsamps-i, scale_factor);
+-}
+-
+-DECLARE_CONVERTER(sc16_item32_le, 1, sc16, 1, PRIORITY_SIMD){
+-const item32_t *input = reinterpret_castconst item32_t *(inputs[0]);
+-sc16_t *output = reinterpret_castsc16_t *(outputs[0]);
+-
+-size_t i = nsamps / SIMD_WIDTH;
+-
+-if (i)
+-neon_item32_sc16_swap_16n((void *) input, (void *) output, i);
+-
+-i *= SIMD_WIDTH;
+-
+-

Bug#794906: uhd 3.8 ftbfs on arm64, 3.7 built fine before on arm64

2015-08-07 Thread Matthias Klose
Package: src:uhd
Version: 3.8.5-1
Severity: serious
Tags: sid stretch

see
https://buildd.debian.org/status/fetch.php?pkg=uhdarch=arm64ver=3.8.5-1stamp=1438910044

[ 19%] Building C object lib/CMakeFiles/uhd.dir/convert/convert_orc.c.o
cd /«PKGBUILDDIR»/build/lib  /usr/bin/cc  -DHAVE_CONFIG_H -DUHD_DLL_EXPORTS
-DUHD_IMAGES_DIR=OFF -DUHD_VERSION=30805 -g -O2 -fstack-protector-strong
-Wformat -Werror=format-security -D_FORTIFY_SOURCE=2  -fPIC
-I/«PKGBUILDDIR»/build/include -I/«PKGBUILDDIR»/host/include
-I/«PKGBUILDDIR»/build/lib/ic_reg_maps -I/usr/include/orc-0.4
-I/«PKGBUILDDIR»/host/lib/convert -I/«PKGBUILDDIR»/build/lib/convert
-I/«PKGBUILDDIR»/build/lib/transport/nirio/lvbitx -I/usr/include/libusb-1.0
-I/«PKGBUILDDIR»/host/lib/usrp/cores
-I/«PKGBUILDDIR»/host/../firmware/fx2/common
-I/«PKGBUILDDIR»/host/lib/usrp/common
-I/«PKGBUILDDIR»/host/lib/usrp/common/ad9361_driver-Wall -Wextra
-Wsign-compare -o CMakeFiles/uhd.dir/convert/convert_orc.c.o   -c
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c: In function
'_backup__convert_fc32_1_to_item32_1_nswap_orc':
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:254:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var38.x2[0]0x8000)) tmp = 0x7fff;
^
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:260:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var38.x2[1]0x8000)) tmp = 0x7fff;
^
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c: In function
'_backup__convert_fc32_1_to_item32_1_bswap_orc':
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:460:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var38.x2[0]0x8000)) tmp = 0x7fff;
^
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:466:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var38.x2[1]0x8000)) tmp = 0x7fff;
^
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c: In function
'_backup__convert_fc32_1_to_sc8_1_nswap_orc':
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:1371:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var37.x2[0]0x8000)) tmp = 0x7fff;
^
/«PKGBUILDDIR»/build/lib/convert/convert_orc.c:1377:16: warning: comparison
between signed and unsigned integer expressions [-Wsign-compare]
if (tmp == 0x8000  !(var37.x2[1]0x8000)) tmp = 0x7fff;
^
/usr/bin/cmake -E cmake_progress_report /«PKGBUILDDIR»/build/CMakeFiles


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org