Skip to content

2.20.1 fails to compile with private declared function in boost #9888

@SuperSandro2000

Description

@SuperSandro2000

Describe the bug

nix> In file included from include/boost/container/vector.hpp:27,
nix>                  from include/boost/container/small_vector.hpp:27,
nix>                  from src/libexpr/gc-small-vector.hh:3,
nix>                  from src/libexpr/eval.cc:21:
nix> include/boost/container/allocator_traits.hpp: In instantiation of 'struct boost::container::allocator_traits<traceable_allocator<void> >':
nix> include/boost/container/small_vector.hpp:122:7:   required from 'class boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void>'
nix> include/boost/container/allocator_traits.hpp:145:48:   required from 'struct boost::container::allocator_traits<boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void> >'
nix> include/boost/container/vector.hpp:802:88:   required from 'class boost::container::vector<nix::Value*, boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>,
void>, void>'
nix> include/boost/container/small_vector.hpp:341:7:   required from 'class boost::container::small_vector_base<nix::Value*, traceable_allocator<nix::Value*>, void>'
nix> include/boost/container/small_vector.hpp:531:7:   required from 'class boost::container::small_vector<nix::Value*, 4, traceable_allocator<nix::Value*>, void>'
nix> src/libexpr/eval.cc:1730:31:   required from here
nix> include/boost/container/allocator_traits.hpp:145:48: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> In file included from src/libexpr/value.hh:15,
nix>                  from src/libexpr/nixexpr.hh:7,
nix>                  from src/libexpr/attr-set.hh:4,
nix>                  from src/libexpr/eval.hh:4,
nix>                  from src/libexpr/eval.cc:1:
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:210:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:219:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:223:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:228:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:233:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> In file included from include/boost/container/vector.hpp:27,
nix>                  from include/boost/container/small_vector.hpp:27,
nix>                  from src/libexpr/gc-small-vector.hh:3,
nix>                  from src/libexpr/primops.cc:7:
nix> include/boost/container/allocator_traits.hpp: In instantiation of 'struct boost::container::allocator_traits<traceable_allocator<void> >':
nix> include/boost/container/small_vector.hpp:122:7:   required from 'class boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void>'
nix> include/boost/container/allocator_traits.hpp:145:48:   required from 'struct boost::container::allocator_traits<boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>, void> >'
nix> include/boost/container/vector.hpp:802:88:   required from 'class boost::container::vector<nix::Value*, boost::container::small_vector_allocator<nix::Value*, traceable_allocator<void>,
void>, void>'
nix> include/boost/container/small_vector.hpp:341:7:   required from 'class boost::container::small_vector_base<nix::Value*, traceable_allocator<nix::Value*>, void>'
nix> include/boost/container/small_vector.hpp:531:7:   required from 'class boost::container::small_vector<nix::Value*, 128, traceable_allocator<nix::Value*>, void>'
nix> src/libexpr/primops.cc:2733:56:   required from here
nix> include/boost/container/allocator_traits.hpp:145:48: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> In file included from src/libexpr/value.hh:15,
nix>                  from src/libexpr/nixexpr.hh:7,
nix>                  from src/libexpr/attr-set.hh:4,
nix>                  from src/libexpr/eval.hh:4,
nix>                  from src/libexpr/eval-inline.hh:5,
nix>                  from src/libexpr/primops.cc:4:
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:210:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:215:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:219:13: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:223:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:228:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> include/boost/container/allocator_traits.hpp:233:16: error: 'typedef void traceable_allocator<void>::value_type' is private within this context
nix> /nix/store/7ikfgkswxfcqcxhpcz3bcpg98hv523y4-boehm-gc-8.2.4-dev/include/gc/gc_allocator.h:319:23: note: declared private here
nix>   319 |   typedef void        value_type;
nix>       |                       ^~~~~~~~~~
nix> make: *** [mk/patterns.mk:2: src/libexpr/eval.o] Error 1
nix> make: *** Waiting for unfinished jobs....
nix> make: *** [mk/patterns.mk:2: src/libexpr/primops.o] Error 1
nix> rm src/nix/generated-doc/files/profiles.md

see NixOS/nixpkgs#285264

Steps To Reproduce

  1. checkout nixVersions.nix_2_20: init at 2.20.5; nixVersions.unstable: 2.19 -> 2.20 nixpkgs#285264
  2. nix build .#nixVersions.unstable

Expected behavior

It should compile.

nix-env --version output

Additional context

I tried to compile it with boost 1.84 but that has the same problem.

Priorities

Add 👍 to issues you find important.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugbuild-problemNix fails to compile or test; also improvements to build process

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions