-
Notifications
You must be signed in to change notification settings - Fork 13.5k
offload can't build on i386 #91819
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
Labels
Comments
@llvm/issue-subscribers-offload Author: Sylvestre Ledru (sylvestre)
On linux debian sid i386:
```
/build/source/build-llvm/bin/clang++ --target=i386-linux-gnu -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/source/llvm/include -I/build/source/build-llvm/include -I/build/source/offload/include -fstack-protector-strong -Wformat -Werror=format-security -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/source/build-llvm/runtimes/runtimes-bins=../../../ -fdebug-prefix-map=/build/source/= -no-canonical-prefixes -ffile-prefix-map=/build/source/build-llvm/runtimes/runtimes-bins=../../../ -ffile-prefix-map=/build/source/= -no-canonical-prefixes -O3 -DNDEBUG -std=c++17 -fno-exceptions -funwind-tables -fno-exceptions -funwind-tables -fno-exceptions -MD -MT offload/tools/deviceinfo/CMakeFiles/llvm-omp-device-info.dir/llvm-omp-device-info.cpp.o -MF offload/tools/deviceinfo/CMakeFiles/llvm-omp-device-info.dir/llvm-omp-device-info.cpp.o.d -o offload/tools/deviceinfo/CMakeFiles/llvm-omp-device-info.dir/llvm-omp-device-info.cpp.o -c /build/source/offload/tools/deviceinfo/llvm-omp-device-info.cpp
In file included from /build/source/offload/tools/deviceinfo/llvm-omp-device-info.cpp:14:
In file included from /build/source/offload/include/omptarget.h:17:
/build/source/offload/include/Shared/APITypes.h:111:15: error: static assertion failed due to requirement 'sizeof(KernelArgsTy) == (8 * sizeof(int) + 3 * sizeof(long long) + 4 * sizeof(void **) + 2 * sizeof(long long *))': Invalid struct size
111 | static_assert(sizeof(KernelArgsTy) ==
| ^~~~~~~~~~~~~~~~~~~~~~~
112 | (8 * sizeof(int32_t) + 3 * sizeof(int64_t) +
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 | 4 * sizeof(void **) + 2 * sizeof(int64_t *)),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/source/offload/include/Shared/APITypes.h:111:36: note: expression evaluates to '76 == 80'
111 | static_assert(sizeof(KernelArgsTy) ==
| ~~~~~~~~~~~~~~~~~~~~~^~
112 | (8 * sizeof(int32_t) + 3 * sizeof(int64_t) +
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
113 | 4 * sizeof(void **) + 2 * sizeof(int64_t *)),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
|
@jhuber6 did you see that before? thanks :) i386 built before: https://packages.debian.org/unstable/libomp5-18 |
i386 is 32-bit right? I don't think we ever supported that. Can you try removing the static assert there to see if it builds? |
jhuber6
added a commit
to jhuber6/llvm-project
that referenced
this issue
May 15, 2024
Summary: Previously we had this `LIBOMPTARGET_ENABLED` variable which controlled including `libomptarget`. This is now redundant since it's controlled by `LLVM_ENABLE_RUNTIMES`. However, this had the extra effect of not building it when given unsupported targets. THis was lost during the move to `offload`. This patch moves this logic back and makes the `offload` target just quit without doing anything if used on an unsupported architecture. llvm#91881 llvm#91819
jhuber6
added a commit
that referenced
this issue
May 15, 2024
) Summary: Previously we had this `LIBOMPTARGET_ENABLED` variable which controlled including `libomptarget`. This is now redundant since it's controlled by `LLVM_ENABLE_RUNTIMES`. However, this had the extra effect of not building it when given unsupported targets. THis was lost during the move to `offload`. This patch moves this logic back and makes the `offload` target just quit without doing anything if used on an unsupported architecture. #91881 #91819 --------- Co-authored-by: Sylvestre Ledru <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
On linux debian sid i386:
The text was updated successfully, but these errors were encountered: