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

/usr/ports/devel/llvm-devel/work-default/llvm-project-9d1bcb70ec8830ad85c0756a03022d3811537284/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp:569:1: error: static assertion failed due to requirement 'sizeof(__sanitizer::__sanitizer_cpuset) >= sizeof(_cpuset)': #63485

Closed
pkubaj opened this issue Jun 24, 2023 · 2 comments

Comments

@pkubaj
Copy link
Contributor

pkubaj commented Jun 24, 2023

17.0.d20230622 (from devel/llvm-devel port) currently fails to build on FreeBSD 14.0-CURRENT on powerpc64* platforms with:

/usr/ports/devel/llvm-devel/work-default/llvm-project-9d1bcb70ec8830ad85c0756a03022d3811537284/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp:569:1: error: static assertion failed due to requirement 'sizeof(__sanitizer::__sanitizer_cpuset) >= sizeof(_cpuset)':
COMPILER_CHECK(sizeof(__sanitizer_cpuset_t) >= sizeof(cpuset_t));
^              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/ports/devel/llvm-devel/work-default/llvm-project-9d1bcb70ec8830ad85c0756a03022d3811537284/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h:350:30: note: expanded from macro 'COMPILER_CHECK'
#define COMPILER_CHECK(pred) static_assert(pred, "")
                             ^             ~~~~
/usr/ports/devel/llvm-devel/work-default/llvm-project-9d1bcb70ec8830ad85c0756a03022d3811537284/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_freebsd.cpp:569:45: note: expression evaluates to '32 >= 128'
COMPILER_CHECK(sizeof(__sanitizer_cpuset_t) >= sizeof(cpuset_t));
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/ports/devel/llvm-devel/work-default/llvm-project-9d1bcb70ec8830ad85c0756a03022d3811537284/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h:350:44: note: expanded from macro 'COMPILER_CHECK'
#define COMPILER_CHECK(pred) static_assert(pred, "")
                                           ^~~~
1 error generated.
@VoxSciurorum
Copy link

FreeBSD recently increased the size of cpuset_t from 256 to 1024, encoded in the macro CPU_MAXSIZE which you get if you include <sys/cpuset.h>. This is only in the latest development version of FreeBSD 14. It is not in any released version.

@VoxSciurorum
Copy link

This fixes the compilation error. I have not tested the resulting sanitizer libraries.

cpuset.diff.txt

freebsd-git pushed a commit to freebsd/freebsd-ports that referenced this issue Jun 27, 2023
Bump cpuset size to 1024 on newer current. Newly added sanitizer
support for cpuset_getaffinity(2) hardcodes the size so bump it to
match CPU_MAXSIZE (it's not obviously possible to extract it from
sys/_cpuset.h).

PR:		272235
Issue:		llvm/llvm-project#63485
Submitted by:	jfc@mit.edu
@melver melver closed this as completed in 65bc9c3 Jul 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants