Due mainly to circumstances beyond my control, it is now possible to build the volk library on Cygwin :-). Previously, there was no support for C99 complex data types in the Cygwin library, but this was fixed by the release of Cygwin 1.7.8-1 this past Tuesday.

The remaining issues can be addressed by patches or workarounds:

(1) configure fails while testing for -lboost_unit_test_framework because of the presence of "-Wl,--enable-runtime-pseudo-reloc" in LDFLAGS. I'm not sure why it is a problem, but I don't think these flags are needed at all in this situation.

(2) C++ libraries are not found because volk/config/gcc_version_workaround.m4 specifies -nostdinc++ without knowing where to find the libraries on Cygwin. My suggestion is to exempt Cygwin from the action of gcc_version_workaround.m4.

Changes to fix both of these (for Cygwin, anyway) are in the attached patch file.

(3) volk_16i_x4_quad_max_star_16i_a16.h triggers an internal compiler error in the Cygwin gcc 3.4.4-999. One workaround is to remove "-O2" from the Makefile. (An obvious suggestion is to use a newer compiler, but the last time I tried it Cygwin gcc 4.x couldn't handle the exceptions generated while looking for a working circular buffer strategy. I will check again from time to time to see if the latest compiler works.)

The bottom line is that we can now build volk (and the GNU Radio 'next' branch) on Cygwin.

-- Don W.
diff --git a/volk/config/gcc_version_workaround.m4 
b/volk/config/gcc_version_workaround.m4
old mode 100644
new mode 100755
index b3ba0b6..3cd8a0c
--- a/volk/config/gcc_version_workaround.m4
+++ b/volk/config/gcc_version_workaround.m4
@@ -1,7 +1,11 @@
AC_DEFUN([LV_GCC_VERSION_WORKAROUND], [
+    case "${host_os}" in
+      *cygwin*)
+      ;;
+      *)
        AC_REQUIRE([LF_CONFIGURE_CXX])
        
        cxx_version=`$CXX --version`

        cxx_major_version=`echo $cxx_version | sed 's/[[^)]]*) 
\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\1/'`
@@ -42,8 +46,8 @@ AC_DEFUN([LV_GCC_VERSION_WORKAROUND],
                

        
        fi
        
-       
+    esac

        ])
\ No newline at end of file
diff --git a/volk/config/lv_configure.m4 b/volk/config/lv_configure.m4
old mode 100644
new mode 100755
index f98b2dc..dfa490c
--- a/volk/config/lv_configure.m4
+++ b/volk/config/lv_configure.m4
@@ -96,16 +96,17 @@ dnl  AM_CONDITIONAL([USE_PYTHON], [test "$with_python" = 
yes])
  AC_HEADER_TIME
  AC_C_BIGENDIAN

  dnl Check for Mingw support
  GR_PWIN32
-  GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
+  dnl GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS
dnl Check for liborc
  ORC_CHECK
- LDFLAGS="$LDFLAGS $LIBGNURADIO_CORE_EXTRA_LDFLAGS"
+  dnl Following causes test for -lboost_unit_test_framework to fail on Cygwin
+  dnl LDFLAGS="$LDFLAGS $LIBGNURADIO_CORE_EXTRA_LDFLAGS"

  AC_CHECK_PROG([XMLTO],[xmlto],[yes],[])
  AM_CONDITIONAL([HAS_XMLTO], [test x$XMLTO = xyes])

  dnl Define where to look for cppunit includes and libs
_______________________________________________
Discuss-gnuradio mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to