Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

address warnings in resource/resource_gen.cpp etc, then revert workaround #300

Closed
garlick opened this issue Mar 30, 2018 · 16 comments · Fixed by #757
Closed

address warnings in resource/resource_gen.cpp etc, then revert workaround #300

garlick opened this issue Mar 30, 2018 · 16 comments · Fixed by #757
Assignees
Labels

Comments

@garlick
Copy link
Member

garlick commented Mar 30, 2018

As discussed in #298, g++ 5.4.0 issues some new warnings that must be disabled in order to be non-fatal due to -Werror. In order to support this compiler, several -Wno-* options were added to resources/Makefile.am (8a4b016). However, one that is needed, -Wno-maybe-uninitialized, could not be added because it is not understood by clang 3.8 in travis, and an unknown warning option is fatal.

The workaround (6856990) was to add -Wno-error to resources/Makefile.am, but that should only be a temporary solution until the root cause of the warnings is found.

Here is the warning output:

jimbo:~/proj/flux-sched/resource > make
Making all in planner
make[1]: Entering directory '/home/garlick/proj/flux-sched/resource/planner'
Making all in .
make[2]: Entering directory '/home/garlick/proj/flux-sched/resource/planner'
  CC       libplanner_la-planner.lo
  CCLD     libplanner.la
ar: `u' modifier ignored since `D' is the default (see `U')
make[2]: Leaving directory '/home/garlick/proj/flux-sched/resource/planner'
Making all in test
make[2]: Entering directory '/home/garlick/proj/flux-sched/resource/planner/test'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/garlick/proj/flux-sched/resource/planner/test'
make[1]: Leaving directory '/home/garlick/proj/flux-sched/resource/planner'
Making all in .
make[1]: Entering directory '/home/garlick/proj/flux-sched/resource'
  CXX      utilities/utilities_grug2dot-grug2dot.o
  CXX      utilities_grug2dot-resource_gen_spec.o
In file included from /opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:33:0,
                 from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp: In member function ‘void boost::vec_adj_list_impl<Graph, Config, Base>::copy_impl(const boost::vec_adj_list_impl<Graph, Config, Base>&) [with Graph = boost::adjacency_li/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp:95:84: warning: ‘*((void*)& ei_end +32)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
               && edges BOOST_GRAPH_MEMBER first != x.edges BOOST_GRAPH_MEMBER first);
                                                                                    ^
In file included from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246:0,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:2119:27: note: ‘*((void*)& ei_end +32)’ was declared here
         edge_iterator ei, ei_end;
                           ^
In file included from /opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:33:0,
                 from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp:70:9: warning: ‘*((void*)& ei +48)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (edges BOOST_GRAPH_MEMBER first == edges BOOST_GRAPH_MEMBER second) 
         ^
In file included from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246:0,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:2119:23: note: ‘*((void*)& ei +48)’ was declared here
         edge_iterator ei, ei_end;
                       ^
  CXXLD    utilities/grug2dot
  CXX      utilities/utilities_resource_query-resource-query.o
  CXX      utilities/utilities_resource_query-command.o
  CXX      utilities_resource_query-dfu_traverse.o
  CXX      utilities_resource_query-dfu_traverse_impl.o
  CXX      utilities_resource_query-resource_gen.o
In file included from /opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:33:0,
                 from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246,
                 from resource_graph.hpp:29,
                 from resource_gen.hpp:30,
                 from resource_gen.cpp:30:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp: In member function ‘void boost::vec_adj_list_impl<Graph, Config, Base>::copy_impl(const boost::vec_adj_list_impl<Graph, Config, Base>&) [with Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>; Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config; Base = boost::directed_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config>]’:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp:70:9: warning: ‘*((void*)& ei +48)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (edges BOOST_GRAPH_MEMBER first == edges BOOST_GRAPH_MEMBER second) 
         ^
In file included from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246:0,
                 from resource_graph.hpp:29,
                 from resource_gen.hpp:30,
                 from resource_gen.cpp:30:
/opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:2119:23: note: ‘*((void*)& ei +48)’ was declared here
         edge_iterator ei, ei_end;
                       ^
  CXX      utilities_resource_query-resource_gen_spec.o
In file included from /opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:33:0,
                 from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp: In member function ‘void boost::vec_adj_list_impl<Graph, Config, Base>::copy_impl(const boost::vec_adj_list_impl<Graph, Config, Base>&) [with Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>; Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config; Base = boost::directed_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config>]’:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp:95:84: warning: ‘*((void*)& ei_end +32)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
               && edges BOOST_GRAPH_MEMBER first != x.edges BOOST_GRAPH_MEMBER first);
                                                                                    ^
In file included from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246:0,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:2119:27: note: ‘*((void*)& ei_end +32)’ was declared here
         edge_iterator ei, ei_end;
                           ^
In file included from /opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:33:0,
                 from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adj_list_edge_iterator.hpp:70:9: warning: ‘*((void*)& ei +48)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (edges BOOST_GRAPH_MEMBER first == edges BOOST_GRAPH_MEMBER second) 
         ^
In file included from /opt/boost-1.53/include/boost/graph/adjacency_list.hpp:246:0,
                 from resource_gen_spec.cpp:26:
/opt/boost-1.53/include/boost/graph/detail/adjacency_list.hpp:2119:23: note: ‘*((void*)& ei +48)’ was declared here
         edge_iterator ei, ei_end;
                       ^
  CXXLD    utilities/resource-query
make[1]: Leaving directory '/home/garlick/proj/flux-sched/resource'
@dongahn
Copy link
Member

dongahn commented Mar 30, 2018

Thanks.

@garlick
Copy link
Member Author

garlick commented Apr 1, 2018

Another warning that is popping up in that code on a system with gcc 4.9.2

  CXX      utilities_resource_query-resource_gen.o
resource_gen.cpp: In member function ‘int dfs_emitter_t::path_prefix(const string&, int, std::string&)’:
resource_gen.cpp:90:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while (occurrence != (num_slashes - uplevel + 1)) {
                       ^

@dongahn
Copy link
Member

dongahn commented Apr 1, 2018

Gotta! Will fix.

@tpatki
Copy link
Member

tpatki commented Jul 3, 2018

I might be interested in this.

@tpatki tpatki self-assigned this Jul 3, 2018
@dongahn
Copy link
Member

dongahn commented Jul 16, 2020

This will be great if this can be looked at for July freeze. Adding "bug" label.

@dongahn dongahn added the bug label Jul 16, 2020
@SteVwonder SteVwonder added this to the 2020 July Release milestone Jul 17, 2020
@dongahn
Copy link
Member

dongahn commented Jul 17, 2020

@garlick: I dropped your C++ flag changes and built it on Ubuntu with the following g++ version but I don't reproduce those errors.

ƒ(s=1,d=0) fluxuser@6ee9273ac502:/usr/src$ g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

The boost graph packages used are:

ƒ(s=1,d=0) fluxuser@6ee9273ac502:/usr/src$ apt list | grep boost-graph

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libboost-graph-dev/bionic,now 1.65.1.0ubuntu1 amd64 [installed]
libboost-graph-parallel-dev/bionic 1.65.1.0ubuntu1 amd64
libboost-graph-parallel1.62-dev/bionic 1.62.0+dfsg-5 amd64
libboost-graph-parallel1.62.0/bionic 1.62.0+dfsg-5 amd64
libboost-graph-parallel1.65-dev/bionic 1.65.1+dfsg-0ubuntu5 amd64
libboost-graph-parallel1.65.1/bionic 1.65.1+dfsg-0ubuntu5 amd64
libboost-graph1.62-dev/bionic 1.62.0+dfsg-5 amd64
libboost-graph1.62.0/bionic 1.62.0+dfsg-5 amd64
libboost-graph1.65-dev/bionic,now 1.65.1+dfsg-0ubuntu5 amd64 [installed,automatic]
libboost-graph1.65.1/bionic,now 1.65.1+dfsg-0ubuntu5 amd64 [installed,automatic]

So v1.62 is a bit newer than your test. Maybe they addressed some of these compilation errors...

How did you test this with g++ 5.4.0?

@dongahn
Copy link
Member

dongahn commented Jul 17, 2020

I tried this with g++-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010 on Ubuntu as well and this is no longer the problem.

There probably is some bug within boost graph library in 1.53 that has been fixed later.

Let me try centor7 image which should still pull in 1.53 boost-dev package.

@dongahn
Copy link
Member

dongahn commented Jul 18, 2020

I built the entire GCC-5.4 stack from the source on my centos7 container to test this out. But with my side-installed GCC

bash-4.2$ g++ --version
g++ (GCC) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

I am getting:

make[3]: Entering directory `/usr/src/resource/libjobspec'
/bin/sh ../../libtool  --tag=CXX   --mode=link g++ -std=c++11  -g -O2   -o flux-jobspec-validate flux-jobspec-validate.o libjobspec_conv.la -lyaml-cpp
libtool: link: g++ -std=c++11 -g -O2 -o flux-jobspec-validate flux-jobspec-validate.o  ./.libs/libjobspec_conv.a /usr/src/GCC/lib/../lib64/libstdc++.so -lyaml-cpp -Wl,-rpath -Wl,/usr/src/GCC/lib/../lib64 -Wl,-rpath -Wl,/usr/src/GCC/lib/../lib64
./.libs/libjobspec_conv.a(libjobspec_conv_la-jobspec.o): In function `YAML::Node::Scalar[abi:cxx11]() const':
/usr/include/yaml-cpp/node/impl.h:158: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]'
./.libs/libjobspec_conv.a(libjobspec_conv_la-jobspec.o): In function `Flux::Jobspec::Jobspec::Jobspec(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/usr/src/resource/libjobspec/jobspec.cpp:425: undefined reference to `YAML::Load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
./.libs/libjobspec_conv.a(libjobspec_conv_la-jobspec.o): In function `YAML::Node::Scalar[abi:cxx11]() const':
/usr/include/yaml-cpp/node/impl.h:158: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]'
/usr/include/yaml-cpp/node/impl.h:158: undefined reference to `YAML::detail::node_data::empty_scalar[abi:cxx11]'
collect2: error: ld returned 1 exit status
make[3]: *** [flux-jobspec-validate] Error 1
make[3]: Leaving directory `/usr/src/resource/libjobspec'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/resource'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/src'
make: *** [all] Error 2

This seems to be a C++ API mismatch between GCC 5.4 and the yaml shared library.

@dongahn
Copy link
Member

dongahn commented Jul 18, 2020

To sum up, I have spent enough time to look into this and I don't see a good way to observe this (mis-)behavior and it looks like the current code base works okay under all of our CI testing environments and dependencies.

I will undo @garlick's Makefile changes in resources/Makefile.am (8a4b016) since we don't get fuller compiler checks with them. In fact, I have found a few instances of use of unused variables after undoing those flags. I will do a PR on that soon.

@dongahn
Copy link
Member

dongahn commented Jul 18, 2020

PR #697 addresses this.

@SteVwonder
Copy link
Member

I'm trying to compile the latest flux-sched master with spack on Cori using gcc 7.5.0. I get the error included below. Presumably this is a boost error? I am wondering if the removal of -Wno-maybe-uninitialized is what unveiled this error.

In file included from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:34:0,
                 from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/adjacency_list.hpp:255,
                 from /tmp/herbein1/spack-stage/spack-stage-flux-sched-master-bhchkv7zuqg7tipvln3swpji5s3d4ubx/spack-src/resource/readers/resource_spec_grug.cpp:26:
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adj_list_edge_iterator.hpp: In member function 'void boost::vec_adj_list_impl<Graph
, Config, Base>::copy_impl(const boost::vec_adj_list_impl<Graph, Config, Base>&) [with Graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_g
en_t>; Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS,
Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_property, boost::listS>::config; Base = boost::directed_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::vecS, boost::vecS,
boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t>, boost::vecS, boost::vecS, boost::directedS, Flux::resource_model::resource_pool_gen_t, Flux::resource_model::relation_gen_t, boost::no_p
roperty, boost::listS>::config>]':
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adj_list_edge_iterator.hpp:112:21: error: '*((void*)& ei_end +32)' may be used unin
itialized in this function [-Werror=maybe-uninitialized]
                 || (vCurr != vEnd
                    ~~~~~~~~~~~~~~
                     && edges BOOST_GRAPH_MEMBER first
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                         != x.edges BOOST_GRAPH_MEMBER first);
                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/adjacency_list.hpp:255:0,
                 from /tmp/herbein1/spack-stage/spack-stage-flux-sched-master-bhchkv7zuqg7tipvln3swpji5s3d4ubx/spack-src/resource/readers/resource_spec_grug.cpp:26:
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:2186:27: note: '*((void*)& ei_end +32)' was declared here
         edge_iterator ei, ei_end;
                           ^~~~~~
In file included from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:34:0,
                 from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/adjacency_list.hpp:255,
                 from /tmp/herbein1/spack-stage/spack-stage-flux-sched-master-bhchkv7zuqg7tipvln3swpji5s3d4ubx/spack-src/resource/readers/resource_spec_grug.cpp:26:
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adj_list_edge_iterator.hpp:80:13: error: '*((void*)& ei +48)' may be used uninitial
ized in this function [-Werror=maybe-uninitialized]
             if (edges BOOST_GRAPH_MEMBER first
             ^~
In file included from /global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/adjacency_list.hpp:255:0,
                 from /tmp/herbein1/spack-stage/spack-stage-flux-sched-master-bhchkv7zuqg7tipvln3swpji5s3d4ubx/spack-src/resource/readers/resource_spec_grug.cpp:26:
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:2186:23: note: '*((void*)& ei +48)' was declared here
         edge_iterator ei, ei_end;
                       ^~
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:2186:23: error: '*((void*)& ei +40)' may be used uninitialized i
n this function [-Werror=maybe-uninitialized]
/global/u2/h/herbein1/Repositories/spack/opt/spack/cray-sles15-x86_64/gcc-7.5.0/boost-1.73.0-bswt6cvinpmlaovppy67v67c2nfr5j3s/include/boost/graph/detail/adjacency_list.hpp:2186:23: error: '*((void*)(& ei)+32).__gnu_cxx::__normal_iterato
r<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>*, std::vector<boost::detail::stored_edge_property<long unsigned int, Flux::resource_model::relation_gen_t>, std::allocator<boost::detail::sto
red_edge_property<long unsigned int, Flux::resource_model::relation_gen_t> > > >::_M_current' may be used uninitialized in this function [-Werror=maybe-uninitialized]
cc1plus: all warnings being treated as errors

@dongahn
Copy link
Member

dongahn commented Jul 22, 2020

That problem is still there... sorry. I have a work around and will post it here.

@dongahn
Copy link
Member

dongahn commented Jul 22, 2020

Adding 24a9c53 back in should fix the issue.

It is an issue with a version of Boost Graph Library installed. So I don't know what to do with it other than relaxing the compiler options.

@dongahn
Copy link
Member

dongahn commented Jul 25, 2020

@SteVwonder: I think this should still be closed, do you agree? I find reverting those compiler flags allows us to identify compiler-detectable problems (unused variables) and we shouldn't leave it that way just because there are some issues in some versions of BGL that only manifest themselves under a subset of GCC versions.

@SteVwonder
Copy link
Member

and we shouldn't leave it that way just because there are some issues in some versions of BGL that only manifest themselves under a subset of GCC versions.

Can we use a workaround like this suggestion to avoid throwing warnings/errors on boost headers while still emitting warnings on our code? Maybe @trws knows of a better workaround?

@trws
Copy link
Member

trws commented Jul 28, 2020

That's actually what I would have suggested. There are other ways to get to the same place, but it's wholely appropriate for a usually system-provided dependency like boost to be under -isystem which should take care of a lot of it. The fallback option would be to have a header in sched that includes the necessary boost stuff inside a set of diagnostic pragmas that turn off warnings for those includes. That would be more resilient to someone re-configuring the compilation environment, but more to maintain.

@dongahn dongahn modified the milestones: 2020 July Release, 2020 August Release Aug 14, 2020
@dongahn dongahn modified the milestones: 2020 August Release, 2020 September Release Aug 31, 2020
@mergify mergify bot closed this as completed in #757 Oct 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants