[gnuradio] Disabled NEON optimisations (neon patch, sent upstream)

Jaroslav Škarvada jskarvad at fedoraproject.org
Fri Jul 13 15:18:28 UTC 2012


commit 3e4ea58f5b7e3703c31c77e2a62ec2ca7abc4cd4
Author: Jaroslav Škarvada <jskarvad at redhat.com>
Date:   Fri Jul 13 17:18:22 2012 +0200

    Disabled NEON optimisations (neon patch, sent upstream)
    
      Resolves: rhbz#837028
    - Removed sdcc build requires (not needed)

 gnuradio-3.6.1-neon.patch |   40 ++++++++++++++++++++++++++++++++++++++++
 gnuradio.spec             |   17 +++++++++++++++--
 2 files changed, 55 insertions(+), 2 deletions(-)
---
diff --git a/gnuradio-3.6.1-neon.patch b/gnuradio-3.6.1-neon.patch
new file mode 100644
index 0000000..0b19277
--- /dev/null
+++ b/gnuradio-3.6.1-neon.patch
@@ -0,0 +1,40 @@
+diff --git a/gnuradio-core/src/lib/filter/CMakeLists.txt b/gnuradio-core/src/lib/filter/CMakeLists.txt
+index facaff7..088d337 100644
+--- a/gnuradio-core/src/lib/filter/CMakeLists.txt
++++ b/gnuradio-core/src/lib/filter/CMakeLists.txt
+@@ -210,6 +210,9 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)")
+         ${CMAKE_CURRENT_SOURCE_DIR}/qa_dotprod_powerpc.cc
+     )
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
++    if(have_mfpu_neon)
++        add_definitions(-DHAVE_MFPU_NEON)
++    endif()
+     list(APPEND gnuradio_core_sources
+         ${CMAKE_CURRENT_SOURCE_DIR}/sysconfig_armv7_a.cc
+         ${CMAKE_CURRENT_SOURCE_DIR}/gr_fir_sysconfig_armv7_a.cc
+diff --git a/gnuradio-core/src/lib/filter/dotprod_ccf_armv7_a.c b/gnuradio-core/src/lib/filter/dotprod_ccf_armv7_a.c
+index e7c6b26..c125b49 100644
+--- a/gnuradio-core/src/lib/filter/dotprod_ccf_armv7_a.c
++++ b/gnuradio-core/src/lib/filter/dotprod_ccf_armv7_a.c
+@@ -37,7 +37,7 @@ gr_p2_round_down(size_t x, size_t pow2)
+ }
+ 
+ 
+-#if 0
++#ifndef HAVE_MFPU_NEON
+ 
+ void
+ dotprod_ccf_armv7_a(const float *a, const float *b, float *res, size_t n)
+diff --git a/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c b/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c
+index 68c448b..23bbef0 100644
+--- a/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c
++++ b/gnuradio-core/src/lib/filter/dotprod_fff_armv7_a.c
+@@ -37,7 +37,7 @@ gr_p2_round_down(size_t x, size_t pow2)
+ }
+ 
+ 
+-#if 0
++#ifndef HAVE_MFPU_NEON
+ 
+ float
+ dotprod_fff_armv7_a(const float *a, const float *b, size_t n)
diff --git a/gnuradio.spec b/gnuradio.spec
index 476ee2f..57b9005 100644
--- a/gnuradio.spec
+++ b/gnuradio.spec
@@ -1,6 +1,11 @@
 %{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
 %{?_smp_mflags: %global my_smp_mflags %(echo "%{_smp_mflags}" | sed 's/-j[0-9]\\+/-j1/g')}
 
+# For now disable NEON on all ARMs
+%ifarch %{arm}
+%global disable_mfpu_neon -Dhave_mfpu_neon=0
+%endif
+
 # For versions not yet on ftp, pull from git
 #%%global git_commit 441a3767e05d15e62c519ea66b848b5adb0f4b3a
 
@@ -9,7 +14,7 @@
 
 Name:		gnuradio
 Version:	3.6.1
-Release:	1%{?dist}
+Release:	2%{?dist}
 Summary:	Software defined radio framework
 
 Group:		Applications/Engineering
@@ -23,9 +28,10 @@ Source0:	http://gnuradio.org/redmine/attachments/download/%{attachment_id}/gnura
 # git archive --format=tar --prefix=%%{name}-%%{version}/ %%{git_commit} | \
 # gzip > ../%%{name}-%%{version}.tar.gz
 
+Patch0:		gnuradio-3.6.1-neon.patch
+
 Requires(pre):	shadow-utils
 BuildRequires:	cmake
-BuildRequires:	sdcc
 BuildRequires:	fftw-devel
 BuildRequires:	cppunit-devel
 BuildRequires:	wxPython-devel
@@ -101,6 +107,7 @@ GNU Radio examples
 
 %prep
 %setup -q
+%patch0 -p1 -b .neon
 
 #force regeneration of cached moc output files
 find . -name "*_moc.cc" -exec rm {} \;
@@ -117,6 +124,7 @@ cd build
 -DENABLE_GR_TRELLIS=FORCE -DENABLE_GR_VIDEO_SDL=FORCE \
 -DENABLE_GR_WXGUI=FORCE -DENABLE_GR_UTILS=FORCE \
 -DENABLE_GRC=FORCE -DENABLE-GR_COMEDI=FORCE \
+%{disable_mfpu_neon} \
 ..
 
 # make with -j1 and compile without strict-aliasing
@@ -167,6 +175,11 @@ rm -rf %{buildroot}
 %{_datadir}/gnuradio/examples
 
 %changelog
+* Fri Jul 13 2012 Jaroslav Škarvada <jskarvad at redhat.com> - 3.6.1-2
+- Disabled NEON optimisations (neon patch, sent upstream)
+  Resolves: rhbz#837028
+- Removed sdcc build requires (not needed)
+
 * Tue Jun 12 2012 Jaroslav Škarvada <jskarvad at redhat.com> - 3.6.1-1
 - New version
   Resolves: rhbz#831187


More information about the scm-commits mailing list