discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] GNU Radio not installing: Build Failed


From: CEL
Subject: Re: [Discuss-gnuradio] GNU Radio not installing: Build Failed
Date: Sat, 9 Jun 2018 11:00:42 +0000

Hello Jason and Derek!

What Derek wrote very much sums up what is going on in my head; I
should probably write that down.

So, knowing fully this is everything but an official announcement, 3.8
will need C++11. Just wanted to confirm that.

On the way to 3.8, we'll thus need to "weed out" the systems that we
still support. For example, I'm pretty sure Ubuntu 14.04 will fall off
the wagon. I know there's quite a few users on that, but that's why we
keep the maint-3.7 branch alive: If you're stuck on a 4 year old
desktop/convenience operating system¹, you might simply not need or
want the newest features (and API breakage) that in the meantime
appeared on the master branch. We still don't want to abandon you in
the dark, and thus we backport patches to maint-3.7.

That clearly says something about stability of dependencies on maint-
3.7: We simply won't add any new dependencies, be it a newer version of
a language standard, or an update of a library that we link to. That's
why it's called "maint-something", we do the maintenance, we don't add
new things that might break what you're already doing.

So what about stability of dependencies on the master branch?
The ugly truth is that, as long as we don't formally release anything,
we should be able to do whatever we like on master. It should compile
at every commit, but it's not the end of the world if at some point,
something obscure breaks on master that we didn't notice. It's
unreleased developer code.

Now, that's not really fair to say, though, because 3.7 has been around
forever, and we've got a lot of users who'd normally want to use a
released version building master, just because we haven't been
productive enough at releasing versions in the last years.
Thus, for the time being, we'll announce when we do something on master
that we expect things to break.
Going forward after the release: If you don't want the development
version's quirks (those including random dependency changes, API
changes, ABI changes, disappearing features, appearing features, and
surprise gerbils), I'd advise you to stick with a release and its
maint-MAJOR.MINOR branch.

I hope that answers the demand of users (stability and new features)
and developers (ability to improve and extend without having to care
about dependencies that are partially literally a decade old, looking
at Ubuntu 14.04 there) with an equilibrium that makes new features
appear, without breaking old functionality.

I think this is an issue only because we've been handling master and
maint differently. If you're used to the old GNU Radio dev model,
you'll find that "master" today works much more like "next" used to
work let's say mid-2016. "maint-3.7" is a new (old) concept, which we
hope will make the released versions even more reliable than they used
to be, whilst not stopping developers to just work on the main
development branch (that being master). (If you're still on "maint" and
wondering why nothing happened: that branch is dead.)

So, if you're on an old system, and you don't need the features that
are not in the 3.7, please do consider using maint-3.7 instead of
master. The moment we release 3.8, we'll also start a maint-3.8 branch.
That, by the way, doesn't mean we let maint-3.7 die anytime soon. As
far as feasible, patches to master (and maint-3.8) would continue to be
backported to maint-3.7.

Best regards,
Marcus


¹ CentOS 7 takes a bit of a special role in there, in my opinion, as it
tends to be a server system where you really have good reason not to
update; if it turns out that there's too many dependency problems with
GR 3.8 on it, we'll come up with a "golden way" of getting a working
subenvironment for maint-3.8 to build (even if in a reduced feature
set). If we can come back to you, Jason, there on how to decide what
priorities to set, and maybe for some real-world testing or even
solutions, that'd be valuable.
Basically, the same would apply to Ubuntu server, but I'll be honest
here: CentOS' "maintenance support time" simply puts Canonical to
shame, and Ubuntu LTS early phase of support is about as well-
maintained as CentOS late "maintenance support time", so, personally,
while I think it might be a valid choice for desktop systems that
really can stand an update every two years, I don't think I need to
support Canonical reselling the same desktop-oriented fork of debian as
a server platform. But, due to *excellent* maintenance work on Debian,
thanks to Mait, it's very likely you'll have an easy time getting
recent GNU Radio packages even for older Ubuntu releases.

On Fri, 2018-06-08 at 16:15 +0100, Derek Kozel wrote:
> Hi Jason,
> 
> Centos 7 is being specifically looked at for 3.8 as it will define
> the minimum version of most dependencies. We don't yet have a CentOS
> 7 regression test VM, but it is something to consider. We will be
> enforcing the C++11 requirement in CMake which I believe is
> sufficient to make all this work on Centos, but it would be great to
> get your eyes on it once we've made that change to ensure that it
> does work properly for you. I believe the hope is to make that change
> in the next month.
> 
> Ubuntu 14.04 is the other older OS which pushes the minimum versions
> of dependencies, it remains supported (by Canonical) till the middle
> of next year. My *entirely personal* guess is that CentOS 7(.0?)
> official support on master will be dropped around the same time, but
> of course no one has any interest in making an arbitrary break in
> compatibility. The maint-X.X branches should help reduce the impact
> and increase the longevity of GNU Radio on these very long term
> support OSs.
> 
> Cheers,
> Derek
> 
> 
> On Fri, Jun 8, 2018 at 4:01 PM, Jason Matusiak <address@hidden
> ring.com> wrote:
> > Derek, this was much appreciated and seems to have fixed my
> > problems on Centos 7.
> >  
> > A note about the C++11 mandatory changes that would help me (and
> > probably others).  There are a lot of us who have been forced into
> > using Centos 7 and their so very antiquated tools.  Ubuntu's newer
> > tools (probably cmake) are smart enough to know to switch to c++11
> > because of the need in the source code.  Centos doesn't appear to
> > be smart enough to do that, and so even though we can build the
> > c++11 code if the tools that are installed if we hand-touched the
> > source with some mods, the system wasn't smart enough to do it on
> > its own.
> >  
> > So my hope is that there might be something you can do in the
> > recipes or gnuradio itself that would force the Centos tools to use
> > c++11 (it appears that some mods to the CMakeLists.txt file like I
> > mentioned in my other thread might be enough (and it shouldn't
> > heart the Ubuntu users any).
> >  
> > Anyway, thanks for the temporary rollback!
> >  
> > > --------- Original Message ---------
> > > 
> > > 
> > > Hello Curt,
> > >  
> > > The fix for this issue was merged into the GNU Radio master
> > > branch last night. Thank you for posting the PR and describing
> > > your solution here. The 3.8 release is going to raise the minimum
> > > version requirements of an appreciable number of dependencies in
> > > order to make sure that GNU Radio development can keep moving
> > > forward smoothly. C++11 will be mandatory on master at some time
> > > before that release occurs, but today isn't here quite yet.
> > >  
> > > Thanks,
> > > Derek
> > > 
> > > On Fri, Jun 8, 2018 at 2:11 AM, Curt Corum <address@hidden>
> > > wrote:
> > > > Mir and Jason,
> > > > I've been working through something similar and have found a
> > > > solution.
> > > > Please see the github issue: https://github.com/gnuradio/pybomb
> > > > s/issues/502 and below.
> > > > -Curt
> > > >  
> > > > Dear pybombs team and community,
> > > > Had issues with building gnuradio-default on relatively clean
> > > > but up to date Ubuntu 16.04 LTS. Seems related to https://www.m
> > > > ail-archive.com/address@hidden/msg66739.html https://
> > > > www.mail-archive.com/address@hidden/msg66739.html
> > > > #424 #448
> > > > $ pybombs --version
> > > > 2.3.2
> > > > $ gcc --version
> > > > gcc (Ubuntu 6.4.0-17ubuntu1~16.04) 6.4.0 20180424
> > > > It was necessary to do the following to get the gnuradio-
> > > > default recipe to build thrift, boost, uhd and gnuradio without
> > > > errors:
> > > > >sudo apt-get install g++-6
> > > > >sudo update-alternatives --install /usr/bin/gcc gcc
> > > > /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
> > > > >sudo update-alternatives --config gcc
> > > > and setting gcc-6 to default
> > > > uninstall most of boost 1.58 binary packages (all but non -dev
> > > > distribution packages)
> > > > adding the following to gnuradio-default.lwr
> > > > # gnuradio-default.lwr
> > > > #binary boost linking fails *** CAC
> > > > boost:
> > > >   forcebuild: True
> > > > and modifying config.yml (directly as could not figure out how
> > > > to escape -std=c++-11 for pybombs config --env)
> > > > # config.yml
> > > > env:
> > > >   CXXFLAGS: -std=c++11 -fext-numeric-literals
> > > > and modifying boost.lwr
> > > >  # boost.lwr
> > > >   satisfy:
> > > >   deb: libboost-all-dev >= 1.6 || libboost-dev >= 1.6
> > > >   rpm: (boost-devel >= 1.6) || (boost_1_61-devel >= 1.6) ||
> > > > (boost_1_64-devel >= 1.6) || (boost_1_65-devel >= 1.6)
> > > >   pacman: boost >= 1.6
> > > >   port: boost >= 1.6
> > > >   portage: dev-libs/boost >= 1.6
> > > > Wanted to make sure this got captured as it took several days
> > > > to resolve and seems to be an ongoing issue.
> > > > -Curt
> > > >  
> > > >  
> > > > 
> > > > On 06/07/2018 11:00 AM, address@hidden wrote:
> > > > > Message: 5
> > > > > Date: Thu, 7 Jun 2018 15:13:38 +0100
> > > > > From: Mir Muhammad Lodro <address@hidden>
> > > > > To: address@hidden
> > > > > Subject: [Discuss-gnuradio] GNU Radio not installing: Build
> > > > > Failed
> > > > > Message-ID:
> > > > >       <address@hidden
> > > > > il.gmail.com>
> > > > > Content-Type: text/plain; charset="utf-8"
> > > > > 
> > > > > Hi All
> > > > > i am installing GNU Radio on Linux 16.04, but it's not
> > > > > installing by saying
> > > > > this file requires compiler and library support for ISO 2011
> > > > > standard. This
> > > > > can be done by issuing -std=c++11 or -std=gnu++11  when one
> > > > > has to run
> > > > > single file. But here the build process is automated. I would
> > > > > be grateful
> > > > > if you can look into the following prompt response and guide
> > > > > what could be
> > > > > the possible solution. I have already installed GNU Radio on
> > > > > different
> > > > > machine running 16.04, but I am surprise to see the error
> > > > > when installing
> > > > > on another machine  and despite repeating the very same
> > > > > steps.
> > > > > 
> > > > > The as it as prompt response is:
> > > > > 
> > > > > address@hidden:/home/eexmmlo# pybombs prefix init -a default
> > > > > prefix/default/ -R gnuradio-default
> > > > > PyBOMBS - INFO - PyBOMBS Version 2.3.2
> > > > > PyBOMBS.prefix - WARNING - There already is a prefix in
> > > > > `/home/eexmmlo/prefix/default'.
> > > > > Continue using this path Y/[N]? y
> > > > > Alias `default' already exists, overwrite Y/[N]? y
> > > > > PyBOMBS.prefix - INFO - Installing default packages for
> > > > > prefix...
> > > > > PyBOMBS.prefix - INFO -
> > > > >   - gnuradio
> > > > > PyBOMBS.install_manager - INFO - Phase 1: Creating install
> > > > > tree and
> > > > > installing binary packages:
> > > > > Install tree:
> > > > > |
> > > > > \- gnuradio
> > > > > PyBOMBS.install_manager - INFO - Phase 2: Recursively
> > > > > installing source
> > > > > packages to prefix:
> > > > > PyBOMBS.install_manager - INFO - Installing package: gnuradio
> > > > > PyBOMBS.Packager.source - WARNING - Build dir already exists:
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/build
> > > > > Building:    (100%) [=============================
> > > > > ============================================================
> > > > > ========================]
> > > > > [  4%] Built target volk_obj
> > > > > [  4%] Built target volk
> > > > > [  4%] Built target volk_test_all
> > > > > [  4%] Built target volk_profile
> > > > > [  5%] Built target volk-config-info
> > > > > [  6%] Built target pygen_volk_python_volk_modtool_34493
> > > > > [  6%] Built target pygen_volk_python_volk_modtool_04eb6
> > > > > [  7%] Built target pmt_generated
> > > > > [  7%] Built target gnuradio-pmt
> > > > > [ 10%] Built target gnuradio-runtime
> > > > > [ 11%] Built target test-gnuradio-runtime
> > > > > [ 11%] Built target gr_runtime_test
> > > > > [ 11%] Built target test-gnuradio-pmt
> > > > > [ 11%] Built target gr_pmt_test
> > > > > [ 11%] Built target gnuradio-config-info
> > > > > [ 11%] Built target pmt_swig_swig_doc
> > > > > [ 11%] Built target _pmt_swig_swig_tag
> > > > > [ 11%] Built target pmt_swig_gnuradio_runtime_swig_7dd5e
> > > > > [ 11%] Built target _pmt_swig
> > > > > [ 11%] Built target runtime_swig_swig_doc
> > > > > [ 11%] Built target pmt_swig
> > > > > [ 11%] Built target _runtime_swig_swig_tag
> > > > > [ 11%] Built target runtime_swig_gnuradio_runtime_swig_7dd5e
> > > > > [ 11%] Built target _runtime_swig
> > > > > [ 11%] Built target pygen_gnuradio_runtime_swig_bc893
> > > > > [ 12%] Built target pygen_gnuradio_runtime_swig_c7096
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_0cff0
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_gr_c39fa
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_gru_e77e9
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_20832
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_c0e39
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_2dcdd
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_a87ad
> > > > > [ 13%] Built target pygen_gnuradio_runtime_python_pmt_5fb7b
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_examples_mp_sched_be1cd
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_examples_network_14cb6
> > > > > [ 13%] Built target
> > > > > pygen_gnuradio_runtime_examples_volk_benchmark_0f7b0
> > > > > [ 14%] Built target blocks_generated_includes
> > > > > [ 14%] Building CXX object gr-blocks/lib/CMakeFiles/
> > > > > gnuradio-blocks.dir/float_array_to_int.cc.o
> > > > > In file included from /usr/include/c++/5/cstdint:35:0,
> > > > >                  from /home/eexmmlo/prefix/default/
> > > > > src/gnuradio/gr-blocks/lib/float_array_to_int.cc:30:
> > > > > /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error
> > > > > This file
> > > > > requires compiler and library support for the ISO C++ 2011
> > > > > standard. This
> > > > > support must be enabled with the -std=c++11 or -std=gnu++11
> > > > > compiler
> > > > > options.
> > > > >  #error This file requires compiler and library support \
> > > > >   ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:32:14:
> > > > > error: ?int64_t? does not name a type
> > > > >  static const int64_t MAX_INT =  INT32_MAX;
> > > > >               ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:33:14:
> > > > > error: ?int64_t? does not name a type
> > > > >  static const int64_t MIN_INT =  INT32_MIN;
> > > > >               ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:
> > > > > In function ?void float_array_to_int(const float*, int*,
> > > > > float, int)?:
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:39:5:
> > > > > error: ?int64_t? was not declared in this scope
> > > > >      int64_t r = llrintf(scale * in[i]);
> > > > >      ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:40:9:
> > > > > error: ?r? was not declared in this scope
> > > > >      if (r < MIN_INT)
> > > > >          ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:40:13:
> > > > > error: ?MIN_INT? was not declared in this scope
> > > > >      if (r < MIN_INT)
> > > > >              ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:42:18:
> > > > > error: ?MAX_INT? was not declared in this scope
> > > > >      else if (r > MAX_INT)
> > > > >                   ^
> > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > blocks/lib/float_array_to_int.cc:44:31:
> > > > > error: ?r? was not declared in this scope
> > > > >      out[i] = static_cast<int>(r);
> > > > >                                ^
> > > > > gr-blocks/lib/CMakeFiles/gnuradio-blocks.dir/build.make:4635: 
> > > > > recipe for
> > > > > target 'gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > blocks.dir/float_array_to_int.cc.o'
> > > > > failed
> > > > > make[2]: *** [gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > blocks.dir/float_array_to_int.cc.o]
> > > > > Error 1
> > > > > CMakeFiles/Makefile2:2171: recipe for target
> > > > > 'gr-blocks/lib/CMakeFiles/gnuradio-blocks.dir/all'
> > > > > failed
> > > > > make[1]: *** [gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > blocks.dir/all] Error 2
> > > > > Makefile:160: recipe for target 'all' failed
> > > > > make: *** [all] Error 2
> > > > > PyBOMBS.Packager.source - ERROR - Build failed. See output
> > > > > above for error
> > > > > messages.
> > > > > PyBOMBS.Packager.source - ERROR - Problem occurred while
> > > > > building package
> > > > > gnuradio:
> > > > > Build failed.
> > > > > PyBOMBS.install_manager - ERROR - Error installing package
> > > > > gnuradio.
> > > > > Aborting.
> > > > > 
> > > > > Regards,
> > > > > Mir Lodro
> > > > > -------------- next part --------------
> > > > > An HTML attachment was scrubbed...
> > > > > URL: <http://lists.gnu.org/archive/html/discuss-gnuradio/atta
> > > > > chments/20180607/427cb3c6/attachment.html>
> > > > > 
> > > > > ------------------------------
> > > > > 
> > > > > Message: 6
> > > > > Date: Thu, 07 Jun 2018 07:30:27 -0700
> > > > > From: "Jason Matusiak" <address@hidden>
> > > > > To: "Jose Ruvalcaba" <address@hidden>
> > > > > Cc: "GNURadio Discussion List" <address@hidden>
> > > > > Subject: Re: [Discuss-gnuradio] install issue with c++11
> > > > > Message-ID:
> > > > >       <20180607073027.ba066092a6e013ef68fa4f5a8d80e9ee.45db6e
> > > > > address@hidden>
> > > > >       
> > > > > Content-Type: text/plain; charset="utf-8"
> > > > > 
> > > > > OK, here is where everything stands.  I have made some
> > > > > headway, but it is still not 100% solved yet.  I found some
> > > > > misnamed nomenclature in the ettus wiki on how pybombs
> > > > > installs and muddled through some things to get gr-blocks to
> > > > > finish building.  I still cannot get this all to work
> > > > > automagically, but I am hoping someone can see a way, or we
> > > > > can patch pybombs in such a way to make it happen.
> > > > >  
> > > > > First - The flag in the config.yml is not "env" like the wiki
> > > > > states, but "setup_env".  This seems to be a sub-setting to
> > > > > the config portion of the config.yml files.  The setup_env
> > > > > flag seems to want to source a file, so what I did was put a
> > > > > path to a file in there that contains my command.  The tail
> > > > > of the config.yml mod looks like this:
> > > > > - config:
> > > > >  setup_env: /home/me/Downloads/flag
> > > > >  
> > > > >  
> > > > > My file "flag", contains the one line "export CXXFLAGS=-
> > > > > std=c++11" (minus the quotes of course).
> > > > >  
> > > > > So now when the build process starts (via a regular pybombs
> > > > > install), UHD builds fine as always, and gnuradio start fine,
> > > > > then barfs on gr-blocks (the first place that requires
> > > > > ++11).  I know the environment flag took because I see it in
> > > > > one of the commands it is trying to run and fails on (below
> > > > > is an example of one of the failing commands:
> > > > > [ 27%] Building CXX object gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > blocks.dir/max_ss_impl.cc.o
> > > > > cd /opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/gr-
> > > > > blocks/lib && /usr/local/bin/c++ -DENABLE_GR_LOG
> > > > > -DGR_CTRLPORT -DGR_PERFORMANCE_COUNTERS -DHAVE_ARPA_INET_H
> > > > > -DHAVE_BYTESWAP_H -DHAVE_COSF -DHAVE_LINUX_PPDEV_H
> > > > > -DHAVE_LOG4CPP -DHAVE_MALLOC_H -DHAVE_NETDB_H
> > > > > -DHAVE_NETINET_IN_H -DHAVE_SELECT -DHAVE_SIGNAL_H
> > > > > -DHAVE_SINCOS -DHAVE_SINCOSF -DHAVE_SINF -DHAVE_SYS_IPC_H
> > > > > -DHAVE_SYS_MMAN_H -DHAVE_SYS_SELECT_H -DHAVE_SYS_SHM_H
> > > > > -DHAVE_SYS_SOCKET_H -DHAVE_SYS_TIME_H -DHAVE_SYS_TYPES_H
> > > > > -DHAVE_UNISTD_H -Dgnuradio_blocks_EXPORTS
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/gnuradio-
> > > > > runtime/include
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/gnuradio-
> > > > > runtime/include
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/volk/includ
> > > > > e -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/volk/include
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/gr-
> > > > > blocks/include
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/gr-
> > > > > blocks/lib -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/gr-
> > > > > blocks/include
> > > > > -I/opt/gnuradio/v3.7.12.0_blah/src/gnuradio/gr-blocks/lib
> > > > > -std=c++11 -fvisibility=hidden -Wsign-compare -Wall -Wno-
> > > > > uninitialized -O2 -g -DNDEBUG -fPIC -std=gnu++98 -o
> > > > > CMakeFiles/gnuradio-blocks.dir/max_ss_impl.cc.o -c
> > > > > /opt/gnuradio/v3.7.12.0_blah/src/gnuradio/build/gr-
> > > > > blocks/lib/max_ss_impl.cc
> > > > >  And you can see that it contains "-std=c++11" (that isn't
> > > > > present if I don't do a setup_env in the yml file, so I know
> > > > > pybombs is reading things properly) followed by the normal
> > > > > (for the pybombs install) command "-std=gnu++98" a couple of
> > > > > commands later.  This will fail with the normal complaint
> > > > > about needing ++11.  The interesting thing is, if I do a find
> > > > > and replace, and swap the order of those two flags within all
> > > > > files in src/gnuradio/build/gr-blocks, things build
> > > > > happily.  So what gives?  I can't seem to find a good way to
> > > > > override the ++98.  A workaround is to change the order of
> > > > > those two flags so that the ++11 command comes after it if
> > > > > they are both going to be there, but I can't seem to get that
> > > > > to work either.
> > > > >  Anyone have any ideas?  I don't mind adding additional
> > > > > export commands to my "flag" file, but I haven't found one
> > > > > yet that seems to make a darn to the issue.  I have almost
> > > > > gone as far as I can take it.
> > > > >  
> > > > >  
> > > > > --------- Original Message --------- Subject: Re: [Discuss-
> > > > > gnuradio] install issue with c++11
> > > > > From: "Jose Ruvalcaba" <address@hidden>
> > > > > Date: 6/5/18 7:44 pm
> > > > > To: "Linda20071" <address@hidden>
> > > > > 
> > > > >   I encountered this issue but seemed to fix it by updating
> > > > > my gcc compiler from 5.4.0 to 6.4. However, after I did this
> > > > > I encountered another problem with the uhd drivers which I
> > > > > opened on a separate thread :( . I got the instructions on
> > > > > how to update the gcc compiler from the following youtube
> > > > > video: https://www.youtube.com/watch?v=vVzshfYSgRk.
> > > > > Hope this information is of any help.
> > > > > 
> > > > > 
> > > > >  On Tue, Jun 5, 2018 at 4:27 PM, Linda20071 <address@hidden
> > > > > .com> wrote:
> > > > >   Is there a good book for an "overview of C++11/14" so
> > > > > somebody with a very good background in c++ can grasp the
> > > > > main idea quickly? Examples in a programming overview book
> > > > > can always help!   
> > > > > Thanks in advance!
> > > > > 
> > > > > 
> > > > >  On Tue, Jun 5, 2018 at 2:39 PM, Jason Matusiak <address@hidden
> > > > > toengineering.com> wrote:
> > > > >   Does anyone have experience with this?  I am having trouble
> > > > > figuring out if it is not working, or if I am not doing
> > > > > something right.
> > > > >  
> > > > > The config.yml looks like this when fresh:
> > > > > !!omap
> > > > > - categories:
> > > > >     hardware:
> > > > >         forcebuild: true
> > > > >      common:
> > > > >          forcebuild: true
> > > > > - packages:
> > > > >      gnuradio:
> > > > >          forcebuild: true
> > > > >      gqrx:
> > > > >          forcebuild: true
> > > > >  I then added the line:
> > > > >  - config:
> > > > >     env:
> > > > >         export CXXFLAGS:STRING="-std=c++11"
> > > > >  to the end of it.  I don't think that that is the right way
> > > > > to do it, but CXXFLAGS="-std=c++11" didn't work either (no
> > > > > "export" or ":STRING").
> > > > >  Also tried just straight: 
> > > > >  - env
> > > > >     CXXFLAGS: "-std=c++11"
> > > > >  Any ideas?
> > > > >  
> > > > >  
> > > > > 
> > > > >  Check out https://github.com/gnuradio/pybombs#configuring-a-
> > > > > prefix-environment-eg-for-cross-compiling.  You might be able
> > > > > to set CXXFLAGS with the `--env` flag
> > > > > 
> > > > >   On Tue, Jun 5, 2018 at 10:36 AM Dave NotTelling <dmp250net@
> > > > > gmail.com> wrote:
> > > > >  I would suspect that PyBombs doesn't care about your env
> > > > > variables.  That or it overwrites the CMAKE_CXX_FLAGS at some
> > > > > point.  I have no idea how PyBombs builds the CMake
> > > > > projects.  If it's not calling the `cmake` command directly,
> > > > > then it likely will not pick up the env variable.
> > > > > 
> > > > >   On Tue, Jun 5, 2018 at 10:33 AM Philip Balister <address@hidden
> > > > > ister.org> wrote:
> > > > > On 06/05/2018 10:06 AM, Marcus D. Leech wrote:
> > > > >  > On 06/05/2018 09:07 AM, Jason Matusiak wrote:
> > > > >  >> Thanks Dave, but that did not seem to work for me.  Here
> > > > > were the
> > > > >  >> commands I ran (slightly different than recommended, but
> > > > > that was for
> > > > >  >> some different recipe mods that have nothing to do with
> > > > > this issue):
> > > > >  >>
> > > > >  >> $ export CXXFLAGS="-std=c++11"
> > > > >  >> $ PREFIX=/opt/gnuradio/v3.7.12.0
> > > > >  >> $ yes | pybombs prefix init $PREFIX
> > > > >  >> $ yes | pybombs -p $PREFIX recipes add gr-recipes
> > > > >  >> git+https://github.com/gnuradio/gr-recipes.git
> > > > >  >> $ source /opt/gnuradio/v3.7.12.0/setup_env.sh
> > > > >  >> $ pybombs -vvv -p $PREFIX install gnuradio
> > > > >  >>
> > > > >  >> And currently things keep erroring out at the same place
> > > > > while
> > > > >  >> installing UHD:
> > > > >  >>
> > > > >  >> [ 43%] Building CXX object
> > > > >  >>
> > > > > lib/CMakeFiles/uhd.dir/usrp/dboard/magnesium/magnesium_radio_
> > > > > ctrl_impl.cpp.o
> > > > >  >>
> > > > >  >> [ 43%] Building CXX object
> > > > >  >>
> > > > > lib/CMakeFiles/uhd.dir/usrp/dboard/magnesium/magnesium_radio_
> > > > > ctrl_init.cpp.o
> > > > >  >>
> > > > >  >> c++: internal compiler error: Killed (program cc1plus)
> > > > >  >> Please submit a full bug report,
> > > > >  >> with preprocessed source if appropriate.
> > > > >  >> See <http://bugzilla.redhat.com/bugzilla> for
> > > > > instructions.
> > > > >  >> make[2]: ***
> > > > >  >>
> > > > > [lib/CMakeFiles/uhd.dir/usrp/dboard/magnesium/magnesium_radio
> > > > > _ctrl_init.cpp.o]
> > > > >  >> Error 4
> > > > >  >> make[2]: *** Waiting for unfinished jobs....
> > > > >  >>
> > > > >  >> I've also tried env CXXFLAGS=-std=c++11, but it had the
> > > > > same issues.
> > > > >  >>
> > > > >  > That error is internal to the compiler, it is failing to
> > > > > perform its job
> > > > >  > correctly.  This has nothing to do with Gnu Radio, per se,
> > > > > or PyBombs
> > > > >  >   or any of that.  This ordinarily means you compiler is
> > > > > broken in some
> > > > >  > way.
> > > > >  > 
> > > > >  > HOWEVER.  How much memory do you have on the system?
> > > > >  
> > > > >  
> > > > >  Run dmesg and look for messages from the OOM killer (Out of
> > > > > Memory)
> > > > >  
> > > > >  Philip
> > > > >  
> > > > >  > 
> > > > >  > This issue used to happen on systems with small physical
> > > > > memory, because
> > > > >  > compiling certain things requires a lot of virtual memory
> > > > >  >   on the part of the compiler.
> > > > >  > 
> > > > >  > 
> > > > >  >>
> > > > >  >>     Jason,
> > > > >  >>          You can set the CXXFLAGS env variable to "-
> > > > > std=c++11" and any
> > > > >  >>     CMake builds you run (assuming the same shell) will
> > > > > check the
> > > > >  >>     CXXFLAGS var first.  This assumes that you don't
> > > > > overwrite the
> > > > >  >>     value of CMAKE_CXX_FLAGS.  I just tried it in a
> > > > > terminal with
> > > > >  >>     `export CXXFLAGS="-std=c++11"`, then `cmake ..`, and
> > > > > finally
> > > > >  >>     `VERBOSE=1 make -j 1`.  The verbose make command will
> > > > > show you if
> > > > >  >>     your flags are taking or not.
> > > > >  >>     -Dave
> > > > >  >>
> > > > >  >>     On Tue, Jun 5, 2018 at 8:00 AM Jason Matusiak
> > > > >  >>     <address@hidden
> > > > >  >>     <mailto:address@hidden>> wrote:
> > > > >  >>
> > > > >  >>         I am trying to install gnuradio onto a Centos 7
> > > > > box and am
> > > > >  >>         having more and more issues with packages that
> > > > > use c++11
> > > > >  >>         commands.  For some of the packages, I add the
> > > > > line:
> > > > >  >>         CMAKE_CXX_FLAGS "-std=c++11"
> > > > >  >>         to the module's CMakeLists.txt file.
> > > > >  >>         The issue is that that requires a fetch, the mod,
> > > > > and then a
> > > > >  >>         rebuild.  This worked OK with it was just gqrx I
> > > > > was doing it
> > > > >  >>         for, but now I need it for other modules it
> > > > > appears, and so I
> > > > >  >>         am trying to find a more elegant solution that
> > > > > covers
> > > > >  >>         everything that is built via a pybombs install
> > > > > gnuradio
> > > > >  >>         command (like gr-blocks, which I can't use this
> > > > > trick for).
> > > > >  >>         If I understand the problem correctly, Ubuntu
> > > > > uses new enough
> > > > >  >>         tools to realize that it needs to use the c++11
> > > > > version (or
> > > > >  >>         newer I assume) to build since it is needed.  It
> > > > > seems like
> > > > >  >>         even though Centos 7 has the c++11 capability, it
> > > > > does not
> > > > >  >>         smartly trying to use it, and must be directed to
> > > > > for the
> > > > >  >>         installs to work.
> > > > >  >>         Is there something I can do at an upper level to
> > > > > make things
> > > > >  >>         happy on an install?
> > > > >  >>         _______________________________________________
> > > > >  >>         Discuss-gnuradio mailing list
> > > > >  >>         address@hidden <mailto:Discuss-gnuradio
> > > > > @gnu.org>
> > > > >  >>         https://lists.gnu.org/mailman/listinfo/discuss-gn
> > > > > uradio
> > > > >  >>
> > > > >  >>
> > > > >  >>
> > > > >  >> _______________________________________________
> > > > >  >> Discuss-gnuradio mailing list
> > > > >  >> address@hidden
> > > > >  >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > >  > 
> > > > >  > 
> > > > >  > 
> > > > >  > 
> > > > >  > _______________________________________________
> > > > >  > Discuss-gnuradio mailing list
> > > > >  > address@hidden
> > > > >  > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > >  > 
> > > > >  
> > > > >  _______________________________________________
> > > > >  Discuss-gnuradio mailing list
> > > > >  address@hidden
> > > > >  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio 
> > > > >  
> > > > > _______________________________________________ Discuss-
> > > > > gnuradio mailing list address@hidden https://lists.
> > > > > gnu.org/mailman/listinfo/discuss-gnuradio
> > > > >  
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > >  Discuss-gnuradio mailing list
> > > > >  address@hidden
> > > > >  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > >   
> > > > > 
> > > > > 
> > > > > 
> > > > > 
> > > > > _______________________________________________
> > > > >  Discuss-gnuradio mailing list
> > > > >  address@hidden
> > > > >  https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > > -------------- next part --------------
> > > > > An HTML attachment was scrubbed...
> > > > > URL: <http://lists.gnu.org/archive/html/discuss-gnuradio/atta
> > > > > chments/20180607/d98541db/attachment.html>
> > > > > 
> > > > > ------------------------------
> > > > > 
> > > > > Message: 7
> > > > > Date: Thu, 7 Jun 2018 11:19:59 -0400
> > > > > From: Dave NotTelling <address@hidden>
> > > > > To: address@hidden
> > > > > Cc: GNURadio Discussion List <address@hidden>
> > > > > Subject: Re: [Discuss-gnuradio] GNU Radio not installing:
> > > > > Build Failed
> > > > > Message-ID:
> > > > >       <address@hidden
> > > > > il.gmail.com>
> > > > > Content-Type: text/plain; charset="utf-8"
> > > > > 
> > > > > Check out the thread titled: install issues with c++11.  I
> > > > > think you two
> > > > > are having the same issue with PyBombs and C++11
> > > > > 
> > > > > On Thu, Jun 7, 2018 at 10:16 AM Mir Muhammad Lodro <mir.lodro
> > > > > @gmail.com>
> > > > > wrote:
> > > > > 
> > > > > > Hi All
> > > > > > i am installing GNU Radio on Linux 16.04, but it's not
> > > > > > installing by
> > > > > > saying this file requires compiler and library support for
> > > > > > ISO 2011
> > > > > > standard. This can be done by issuing -std=c++11 or
> > > > > > -std=gnu++11  when one
> > > > > > has to run single file. But here the build process is
> > > > > > automated. I would be
> > > > > > grateful if you can look into the following prompt response
> > > > > > and guide what
> > > > > > could be the possible solution. I have already installed
> > > > > > GNU Radio on
> > > > > > different machine running 16.04, but I am surprise to see
> > > > > > the error when
> > > > > > installing on another machine  and despite repeating the
> > > > > > very same steps.
> > > > > > 
> > > > > > The as it as prompt response is:
> > > > > > 
> > > > > > address@hidden:/home/eexmmlo# pybombs prefix init -a
> > > > > > default
> > > > > > prefix/default/ -R gnuradio-default
> > > > > > PyBOMBS - INFO - PyBOMBS Version 2.3.2
> > > > > > PyBOMBS.prefix - WARNING - There already is a prefix in
> > > > > > `/home/eexmmlo/prefix/default'.
> > > > > > Continue using this path Y/[N]? y
> > > > > > Alias `default' already exists, overwrite Y/[N]? y
> > > > > > PyBOMBS.prefix - INFO - Installing default packages for
> > > > > > prefix...
> > > > > > PyBOMBS.prefix - INFO -
> > > > > >   - gnuradio
> > > > > > PyBOMBS.install_manager - INFO - Phase 1: Creating install
> > > > > > tree and
> > > > > > installing binary packages:
> > > > > > Install tree:
> > > > > > |
> > > > > > \- gnuradio
> > > > > > PyBOMBS.install_manager - INFO - Phase 2: Recursively
> > > > > > installing source
> > > > > > packages to prefix:
> > > > > > PyBOMBS.install_manager - INFO - Installing package:
> > > > > > gnuradio
> > > > > > PyBOMBS.Packager.source - WARNING - Build dir already
> > > > > > exists:
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/build
> > > > > > Building:    (100%)
> > > > > > [==========================================================
> > > > > > =======================================================]
> > > > > > [  4%] Built target volk_obj
> > > > > > [  4%] Built target volk
> > > > > > [  4%] Built target volk_test_all
> > > > > > [  4%] Built target volk_profile
> > > > > > [  5%] Built target volk-config-info
> > > > > > [  6%] Built target pygen_volk_python_volk_modtool_34493
> > > > > > [  6%] Built target pygen_volk_python_volk_modtool_04eb6
> > > > > > [  7%] Built target pmt_generated
> > > > > > [  7%] Built target gnuradio-pmt
> > > > > > [ 10%] Built target gnuradio-runtime
> > > > > > [ 11%] Built target test-gnuradio-runtime
> > > > > > [ 11%] Built target gr_runtime_test
> > > > > > [ 11%] Built target test-gnuradio-pmt
> > > > > > [ 11%] Built target gr_pmt_test
> > > > > > [ 11%] Built target gnuradio-config-info
> > > > > > [ 11%] Built target pmt_swig_swig_doc
> > > > > > [ 11%] Built target _pmt_swig_swig_tag
> > > > > > [ 11%] Built target pmt_swig_gnuradio_runtime_swig_7dd5e
> > > > > > [ 11%] Built target _pmt_swig
> > > > > > [ 11%] Built target runtime_swig_swig_doc
> > > > > > [ 11%] Built target pmt_swig
> > > > > > [ 11%] Built target _runtime_swig_swig_tag
> > > > > > [ 11%] Built target
> > > > > > runtime_swig_gnuradio_runtime_swig_7dd5e
> > > > > > [ 11%] Built target _runtime_swig
> > > > > > [ 11%] Built target pygen_gnuradio_runtime_swig_bc893
> > > > > > [ 12%] Built target pygen_gnuradio_runtime_swig_c7096
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_0cff0
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_gr_c39fa
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_gru_e77e9
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_20832
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_c0e39
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_2dcdd
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_python_gnuradio_ctrlport_a87ad
> > > > > > [ 13%] Built target pygen_gnuradio_runtime_python_pmt_5fb7b
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_examples_mp_sched_be1cd
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_examples_network_14cb6
> > > > > > [ 13%] Built target
> > > > > > pygen_gnuradio_runtime_examples_volk_benchmark_0f7b0
> > > > > > [ 14%] Built target blocks_generated_includes
> > > > > > [ 14%] Building CXX object
> > > > > > gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > > blocks.dir/float_array_to_int.cc.o
> > > > > > In file included from /usr/include/c++/5/cstdint:35:0,
> > > > > >                  from
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:30:
> > > > > > /usr/include/c++/5/bits/c++0x_warning.h:32:2: error: #error
> > > > > > This file
> > > > > > requires compiler and library support for the ISO C++ 2011
> > > > > > standard. This
> > > > > > support must be enabled with the -std=c++11 or -std=gnu++11
> > > > > > compiler
> > > > > > options.
> > > > > >  #error This file requires compiler and library support \
> > > > > >   ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:32:14:
> > > > > > error: ?int64_t? does not name a type
> > > > > >  static const int64_t MAX_INT =  INT32_MAX;
> > > > > >               ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:33:14:
> > > > > > error: ?int64_t? does not name a type
> > > > > >  static const int64_t MIN_INT =  INT32_MIN;
> > > > > >               ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:
> > > > > > In function ?void float_array_to_int(const float*, int*,
> > > > > > float, int)?:
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:39:5:
> > > > > > error: ?int64_t? was not declared in this scope
> > > > > >      int64_t r = llrintf(scale * in[i]);
> > > > > >      ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:40:9:
> > > > > > error: ?r? was not declared in this scope
> > > > > >      if (r < MIN_INT)
> > > > > >          ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:40:13:
> > > > > > error: ?MIN_INT? was not declared in this scope
> > > > > >      if (r < MIN_INT)
> > > > > >              ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:42:18:
> > > > > > error: ?MAX_INT? was not declared in this scope
> > > > > >      else if (r > MAX_INT)
> > > > > >                   ^
> > > > > > /home/eexmmlo/prefix/default/src/gnuradio/gr-
> > > > > > blocks/lib/float_array_to_int.cc:44:31:
> > > > > > error: ?r? was not declared in this scope
> > > > > >      out[i] = static_cast<int>(r);
> > > > > >                                ^
> > > > > > gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > > blocks.dir/build.make:4635: recipe for
> > > > > > target
> > > > > > 'gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > > blocks.dir/float_array_to_int.cc.o'
> > > > > > failed
> > > > > > make[2]: ***
> > > > > > [gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > > blocks.dir/float_array_to_int.cc.o]
> > > > > > Error 1
> > > > > > CMakeFiles/Makefile2:2171: recipe for target
> > > > > > 'gr-blocks/lib/CMakeFiles/gnuradio-blocks.dir/all' failed
> > > > > > make[1]: *** [gr-blocks/lib/CMakeFiles/gnuradio-
> > > > > > blocks.dir/all] Error 2
> > > > > > Makefile:160: recipe for target 'all' failed
> > > > > > make: *** [all] Error 2
> > > > > > PyBOMBS.Packager.source - ERROR - Build failed. See output
> > > > > > above for error
> > > > > > messages.
> > > > > > PyBOMBS.Packager.source - ERROR - Problem occurred while
> > > > > > building package
> > > > > > gnuradio:
> > > > > > Build failed.
> > > > > > PyBOMBS.install_manager - ERROR - Error installing package
> > > > > > gnuradio.
> > > > > > Aborting.
> > > > > > 
> > > > > > Regards,
> > > > > > Mir Lodro
> > > > > > 
> > > > > > _______________________________________________
> > > > > > Discuss-gnuradio mailing list
> > > > > > address@hidden
> > > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > > > 
> > > > > 
> > > > > -------------- next part --------------
> > > > > An HTML attachment was scrubbed...
> > > > > URL: <http://lists.gnu.org/archive/html/discuss-gnuradio/atta
> > > > > chments/20180607/ede199b4/attachment.html>
> > > > > 
> > > > > ------------------------------
> > > > > 
> > > > > Subject: Digest Footer
> > > > > 
> > > > > _______________________________________________
> > > > > Discuss-gnuradio mailing list
> > > > > address@hidden
> > > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > > 
> > > > > 
> > > > > ------------------------------
> > > > > 
> > > > > End of Discuss-gnuradio Digest, Vol 188, Issue 9
> > > > > ************************************************
> > > > 
> > > > _______________________________________________
> > > > Discuss-gnuradio mailing list
> > > > address@hidden
> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> > > > 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]