Skip to content

Commit

Permalink
Officially drop support for GCC <= 4.8 (#296)
Browse files Browse the repository at this point in the history
Although GCC 4.8 is labelled as C++11 compatible, the reasons are:

* GCC 4.8 is buggy enough to prevent reasonable use of Boost.MP11
* GCC 4.8 is dying

Closes #282
  • Loading branch information
mloskot committed Apr 28, 2019
1 parent 8c331a5 commit c9ccc83
Show file tree
Hide file tree
Showing 23 changed files with 45 additions and 60 deletions.
21 changes: 3 additions & 18 deletions .circleci/config.yml
Expand Up @@ -112,9 +112,7 @@ env_clang_cpp11_opt_speed: &env_clang_cpp11_opt_speed
##############################################################################
# Build configurations
##############################################################################
config_gcc48_cpp11_dbg: &config_gcc48_cpp11_dbg
<<: *docker_gcc48
<<: *env_gcc_cpp11_dbg
# GCC 4.8 is used to build `b2` driver
config_gcc48_cpp11_opt_speed: &config_gcc48_cpp11_opt_speed
<<: *docker_gcc48
<<: *env_gcc_cpp11_opt_speed
Expand Down Expand Up @@ -299,6 +297,8 @@ steps_test_io: &steps_test_io
jobs:
bootstrap_checkout:
working_directory: ~/project/gil
# Build `b2` using the ancient compiler to hopefully avoid run-time failures:
# ./b2: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by ./b2)
<<: *config_gcc48_cpp11_opt_speed
steps:
- checkout
Expand Down Expand Up @@ -326,14 +326,6 @@ jobs:
<<: *steps_bootstrap

### GCC 4.x ################################################################
gcc48_11_core:
<<: *config_gcc48_cpp11_dbg
<<: *steps_test_core

gcc48_11_core_speed:
<<: *config_gcc48_cpp11_opt_speed
<<: *steps_test_core

gcc49_11_core:
<<: *config_gcc49_cpp11_dbg
<<: *steps_test_core
Expand Down Expand Up @@ -492,13 +484,6 @@ workflows:
- bootstrap_checkout

### GCC 4.x ############################################################
- gcc48_11_core:
requires:
- bootstrap_gcc
- gcc48_11_core_speed:
requires:
- gcc48_11_core

- gcc49_11_core:
requires:
- bootstrap_gcc
Expand Down
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -17,7 +17,7 @@
**C++/compilers:** | 11, 14, 17 | 11, 14, 17 | 11 | 11 |
msvc++ | VS2015, VS2017 | VS2015, VS2017 | | |
clang++ | | Xcode 9.4.1 | 3.9, 5.0, Xcode 9.4.1 | 3.9, 4.0, 5.0 |
g++ | | 5.4, 8.1 | 5.5, 6.5, 7.4 | 4.8-9, 5.1-5, 6.1-4, 7.1-3, 8.2 |
g++ | | 5.4, 8.1 | 5.5, 6.5, 7.4 | 4.9, 5.1-5, 6.1-4, 7.1-3, 8.2 |
**tests coverage:** |
core + concepts | Y | Y | Y | Y |
headers | core + ext | core + ext | core + ext | core + ext |
Expand Down Expand Up @@ -61,7 +61,7 @@ See [example/README.md](example/README.md) for available GIL examples.

The Boost Generic Image Library (GIL) requires:

- C++11 compiler
- C++11 compiler (GCC 4.9, clang 3.3, MSVC++ 14.0 (1900) or any later version)
- Boost header-only libraries

Optionally, in order to build and run tests and examples:
Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/color_base_algorithm.hpp
Expand Up @@ -238,7 +238,7 @@ template <int N>
struct element_recursion
{

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#pragma GCC diagnostic ignored "-Wfloat-equal"
Expand Down Expand Up @@ -272,7 +272,7 @@ struct element_recursion
semantic_at_c<N-1>(dst)=op();
}

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/basic.hpp
Expand Up @@ -16,7 +16,7 @@
#pragma clang diagnostic ignored "-Wuninitialized"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wuninitialized"
Expand Down Expand Up @@ -188,7 +188,7 @@ struct SameType
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/channel.hpp
Expand Up @@ -22,7 +22,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -208,7 +208,7 @@ struct ChannelConvertibleConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/color.hpp
Expand Up @@ -17,7 +17,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -91,7 +91,7 @@ struct ChannelMappingConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/color_base.hpp
Expand Up @@ -21,7 +21,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -321,7 +321,7 @@ struct ColorBasesCompatibleConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/concept_check.hpp
Expand Up @@ -16,7 +16,7 @@
#pragma clang diagnostic ignored "-Wuninitialized"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wfloat-equal"
#pragma GCC diagnostic ignored "-Wuninitialized"
Expand All @@ -28,7 +28,7 @@
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/dynamic_step.hpp
Expand Up @@ -16,7 +16,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -70,7 +70,7 @@ struct HasDynamicYStepTypeConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/image.hpp
Expand Up @@ -22,7 +22,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -161,7 +161,7 @@ struct ImageConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/image_view.hpp
Expand Up @@ -27,7 +27,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
Expand Down Expand Up @@ -549,7 +549,7 @@ struct ViewsCompatibleConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/pixel.hpp
Expand Up @@ -26,7 +26,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -291,7 +291,7 @@ struct PixelConvertibleConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/pixel_based.hpp
Expand Up @@ -21,7 +21,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -96,7 +96,7 @@ struct HomogeneousPixelBasedConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/pixel_dereference.hpp
Expand Up @@ -24,7 +24,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -107,7 +107,7 @@ struct PixelDereferenceAdaptorArchetype
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/pixel_iterator.hpp
Expand Up @@ -26,7 +26,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -353,7 +353,7 @@ struct MutableIteratorAdaptorConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/pixel_locator.hpp
Expand Up @@ -25,7 +25,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
Expand Down Expand Up @@ -402,7 +402,7 @@ struct MutablePixelLocatorConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/concepts/point.hpp
Expand Up @@ -18,7 +18,7 @@
#pragma clang diagnostic ignored "-Wunused-local-typedefs"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#endif
Expand Down Expand Up @@ -117,7 +117,7 @@ struct Point2DConcept
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
4 changes: 2 additions & 2 deletions include/boost/gil/io/path_spec.hpp
Expand Up @@ -15,7 +15,7 @@
#pragma clang diagnostic ignored "-Wshorten-64-to-32"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
Expand All @@ -27,7 +27,7 @@
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif
#endif // BOOST_GIL_IO_ADD_FS_PATH_SUPPORT
Expand Down
4 changes: 2 additions & 2 deletions io/test/paths.hpp
Expand Up @@ -14,7 +14,7 @@
#pragma clang diagnostic ignored "-Wshorten-64-to-32"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#endif
Expand All @@ -26,7 +26,7 @@
#pragma clang diagnostic pop
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic pop
#endif

Expand Down
2 changes: 1 addition & 1 deletion numeric/test/numeric.cpp
Expand Up @@ -20,7 +20,7 @@
#pragma clang diagnostic ignored "-Wfloat-equal"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wfloat-equal"
#endif
Expand Down
2 changes: 1 addition & 1 deletion test/channel/concepts.cpp
Expand Up @@ -13,7 +13,7 @@
#pragma GCC diagnostic ignored "-Wuninitialized"
#endif

#if defined(BOOST_GCC) && (BOOST_GCC >= 40600)
#if defined(BOOST_GCC) && (BOOST_GCC >= 40900)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
#endif
Expand Down

0 comments on commit c9ccc83

Please sign in to comment.