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/include 
-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" <joruv...@gmail.com>
Date: 6/5/18 7:44 pm
To: "Linda20071" <linda20...@gmail.com>

  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 <linda20...@gmail.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 <ja...@gardettoengineering.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 <dmp250...@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 <phi...@balister.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
 >>     <ja...@gardettoengineering.com
 >>     <mailto:ja...@gardettoengineering.com>> 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
 >>         Discuss-gnuradio@gnu.org <mailto:Discuss-gnuradio@gnu.org>
 >>         https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 >>
 >>
 >>
 >> _______________________________________________
 >> Discuss-gnuradio mailing list
 >> Discuss-gnuradio@gnu.org
 >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 > 
 > 
 > 
 > 
 > _______________________________________________
 > Discuss-gnuradio mailing list
 > Discuss-gnuradio@gnu.org
 > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 > 
 
 _______________________________________________
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio 
 
_______________________________________________ Discuss-gnuradio mailing list 
Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
 


_______________________________________________
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
  




_______________________________________________
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to