tech-pkg archive

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

Re: GCC_REQD += 10 ? (Re: CVS commit: pkgsrc/ham/gnuradio-core



Makoto Fujiwara <makoto%ki.nu@localhost> writes:

> Let me explain why I put GCC_REQD+= 10.
>
> 1.
> 3.10.6.0 to 3.10.7.0 update, tested on 10.99.5
> and commit
>   
> 2. pbulk on 9.0 reports following lines with gcc-8.5 ( GCC_REQD += 8)
>
> ----------------------------------
> [ 58%] Building CXX object gr-filter/lib/CMakeFiles/gnuradio-filter.dir/pm_remez.cc.o
>
> /tmp/ham/gnuradio-core/work/gnuradio-3.10.7.0/gr-filter/lib/pm_remez.cc:
> 	In function 'constexpr void gr::filter::calc_parms(unsigned int, const
> 	std::vector<int>&, const std::vector<double>&, const
> 	std::vector<double>&, const std::vector<double>&,
> 	std::vector<double>&, std::vector<double>&, std::vector<double>&)':
>
> /tmp/ham/gnuradio-core/work/gnuradio-3.10.7.0/gr-filter/lib/pm_remez.cc:189:12:
> 	error: call to non-'constexpr' function 
> 	'std::vector<_Tp,_Alloc>::reference 
> 	 std::vector<_Tp,_Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp =double;
> 	 _Alloc = std::allocator<double>; std::vector<_Tp,_Alloc>::reference = double&;
> 	 std::vector<_Tp, _Alloc>::size_type = long unsigned int]'
>
>          x[i] = cos(PI2 * Grid[Ext[i]]);
>             ^
> gmake[2]: *** [gr-filter/lib/CMakeFiles/gnuradio-filter.dir/build.make:258:
>                gr-filter/lib/CMakeFiles/gnuradio-filter.dir/pm_remez.cc.o] Error 1
> gmake[1]: *** [CMakeFiles/Makefile2:2044: gr-filter/lib/CMakeFiles/gnuradio-filter.dir/all] Error 2
> ----------------------------------

That looks like "compiler objects to language ussage" more than "older
compiler is crashing".

> 3.
> I've tested on 9.3 with gcc-8.5 ( GCC_REQD += 8)
> with
>
> FORCE_C_STD=    c99 ;
> FORCE_CXX_STD = c++11;
> FORCE_CXX_STD = c++17;
> (each)
>
> All fails with the same above problems.

But what does gnuradio say for what language standard it requires?  That
should be expressed as USE_CXX_FEATURES, which will then require a new
enough gcc.

There are also other things that can go in USE_CXX_FEATURES, like
filesystem and unique_ptr.

> 4.
> Then put
>  GCC_REQD += 10;
> (packaged fine) -> commit
>
> Sorry for easy judgement,

We should at least have an upstream bug report and a comment, because
having a version forced (in our new world this quarter) is a sign of a
bug someplace.  Perhaps there is a new language feature not yet handled.

The code/docs to define this in mk/compiler.mk.



I will try to take a look, as soon as my pkgsrc world is up to date.  (I
am on new hardware after a failure, and about to move to 10, and also
have to get over the python bump, so it won't be today!)


Home | Main Index | Thread Index | Old Index