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

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

Closed
SuperSandro2000 opened this issue Jan 31, 2024 · 5 comments
Closed
Labels
bug build-problem Nix fails to compile or test; also improvements to build process

Comments

@SuperSandro2000
Copy link
Member

SuperSandro2000 commented Jan 31, 2024

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.

@thufschmitt thufschmitt added the build-problem Nix fails to compile or test; also improvements to build process label Jan 31, 2024
@thufschmitt thufschmitt moved this to ⚖ To discuss in Nix team Jan 31, 2024
@thufschmitt thufschmitt moved this from ⚖ To discuss to To triage in Nix team Jan 31, 2024
@alois31
Copy link
Contributor

alois31 commented Feb 1, 2024

Is this the same issue that led to #9512?

algitbot pushed a commit to alpinelinux/aports that referenced this issue Feb 2, 2024
@trofi
Copy link
Contributor

trofi commented Feb 2, 2024

Also noticed the same build failure when tried to package nix in the distribution where boost-1.84 is the default.

@edolstra
Copy link
Member

edolstra commented Feb 2, 2024

I think we can close this issue since it's a nixpkgs packaging issue.

@edolstra edolstra closed this as completed Feb 2, 2024
@github-project-automation github-project-automation bot moved this from To triage to Done in Nix team Feb 2, 2024
@trofi
Copy link
Contributor

trofi commented Feb 3, 2024

The build failure is not nixpkgs-specific. Other Linux distributions are affected just as much.

bell-sw pushed a commit to bell-sw/alpaquita-aports that referenced this issue Feb 3, 2024
[ commit 38d945575ec46ff810aa17484d1f4ab6b8268c12 ]

Needed for Nix 2.20.1.

See: NixOS/nix#9888

Patch Source: ivmai/bdwgc@86b3bf0
@rhelmot
Copy link

rhelmot commented Feb 8, 2024

I'm experiencing this with boost 1.83 on FreeBSD. I found that it is resolvable by switching to the latest release (8.2.6) of boehm-gc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug build-problem Nix fails to compile or test; also improvements to build process
Projects
Archived in project
Development

No branches or pull requests

6 participants