On 05.03.2011 01:52, Don W. wrote:
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.
Thanks. I updated Cygwin and now the current git/main Gnuradio builds
out of the box.
(after installing all dependencies with Cygwin, cygport or manually)
The functionality was Ok, examples are working, with synthetic signals
as well as with live audio in/out. GRC is working with the wx widgets.
Waterfall, FFT sinks, constellation plots … all working.
The git/next branch compiles (incl. volk), but make check fails and
make install fails (after installing most of it), too.
Unfortunately, grc always tells me it’s a “v3.3.1git-974-g942e2685”
version,
although I removed all traces of previous versions.
Are the GRC version strings updated in the git versions?
According to the “Process Monitor”, the “3-4git” DLLs are loaded
(after the partial git/next install, before it was 3-3-2git)
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.
I installed boost 1.43 and got no errors this time.
Last time I tried, it stopped at some boost unit test code.
(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.
I had no problems with this (GCC 4).
(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 first GCC 4 release came out in 2005. I used GCC 4 very early
for my projects. It’s important for OpenMP parallelization.
Unfortunately Cygwin still uses GCC 3 as standard compiler.
But they offer GCC 4 as package in their setup.exe.
In the early years, there were many incompatibilities with GCC 4,
because it’s more strict with the standard, and also had bugs.
But now it’s very mature. I think, you should just forget about GCC 3.
The bottom line is that we can now build volk (and the GNU Radio ‘next’
branch) on Cygwin.
It’s great to have a functional Gnuradio on the Windows platform.
UHD did not build, but I don’t have UHD compatible devices, anyway.
I’m still looking for alternative (cheap) hardware, that can be made
gnuradio compatible and integrated in the UHD driver.