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

Boost 1.81.0: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'? #115

Open
wally-mageia opened this issue Dec 25, 2022 · 5 comments

Comments

@wally-mageia
Copy link

When trying to build mapnik 3.1.0 with boost 1.81.0 having a patch from #112 and gcc 12.2.1 in Mageia Cauldron the build fails with:

c++ -o plugins/input/csv/csv_utils.o -c -std=c++14 -DU_USING_ICU_NAMESPACE=0 -O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables -fvisibility=hidden -fvisibility-inlines-hidden -Wall -pthread -ftemplate-depth-300 -Wsign-compare -Wshadow -O2 -DMAPNIK_MEMORY_MAPPED_FILE -DMAPNIK_HAS_DLCFN -DBIGINT -DBOOST_REGEX_HAS_ICU -DHAVE_JPEG -DHAVE_PNG -DHAVE_WEBP -DHAVE_TIFF -DLINUX -DMAPNIK_THREADSAFE -DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1 -DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1 -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DNDEBUG -Ideps -Ideps/mapbox/variant/include -Ideps/agg/include -Iinclude -I/usr/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 plugins/input/csv/csv_utils.cpp
In file included from /usr/include/boost/phoenix/stl.hpp:14,
                 from /usr/include/boost/phoenix/phoenix.hpp:19,
                 from include/mapnik/wkt/wkt_factory.hpp:26,
                 from plugins/input/csv/csv_utils.cpp:27:
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   16 |         BOOST_PP_LOCAL_MACRO(1)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:19:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   19 |         BOOST_PP_LOCAL_MACRO(2)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:22:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   22 |         BOOST_PP_LOCAL_MACRO(3)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:25:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   25 |         BOOST_PP_LOCAL_MACRO(4)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:28:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   28 |         BOOST_PP_LOCAL_MACRO(5)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:31:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   31 |         BOOST_PP_LOCAL_MACRO(6)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:34:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   34 |         BOOST_PP_LOCAL_MACRO(7)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:37:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   37 |         BOOST_PP_LOCAL_MACRO(8)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:40:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   40 |         BOOST_PP_LOCAL_MACRO(9)
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:43:9: error: 'arg1' is not a member of 'boost::phoenix::placeholders'; did you mean 'uarg1'?
   43 |         BOOST_PP_LOCAL_MACRO(10)
      |         ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/geometry/core/config.hpp:16,
                 from /usr/include/boost/geometry/strategy/cartesian/side_by_triangle.hpp:27,
                 from /usr/include/boost/geometry/strategies/strategies.hpp:137,
                 from /usr/include/boost/geometry/geometry.hpp:57,
                 from /usr/include/boost/geometry.hpp:17,
                 from include/mapnik/geometry_adapters.hpp:38,
                 from include/mapnik/geometry_correct.hpp:27,
                 from plugins/input/csv/csv_utils.cpp:26:
/usr/include/boost/spirit/include/phoenix_function.hpp:12:1: note: '#pragma message: This header is deprecated. Use <boost/phoenix/function.hpp> instead.'
   12 | BOOST_HEADER_DEPRECATED("<boost/phoenix/function.hpp>")
      | ^~~~~~~~~~~~~~~~~~~~~~~
@wally-mageia
Copy link
Author

See also mapnik/mapnik#4375.

@wally-mageia
Copy link
Author

Build continues with a workaround from #111 (comment): -DBOOST_PHOENIX_STL_TUPLE_H_.

@tomhughes
Copy link

The problem is that stl/tuple.hpp assumes that boost::phoenix::placeholders::argN is defined, and uses it to define uargN, but if BOOST_PHOENIX_NO_PREDEFINED_TERMINALS is set then that is not true.

@djowel
Copy link
Collaborator

djowel commented Feb 27, 2023

I think we need to fully revert this nagging issue. Any takers?

@LowLevelMahn
Copy link

fixed with 1.84.0

raspbian-autopush pushed a commit to raspbian-packages/mapnik that referenced this issue Dec 24, 2023
raspbian-autopush pushed a commit to raspbian-packages/mapnik that referenced this issue May 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants