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

Building ArmSMEStubs.cpp fails on mingw with LLVM_BUILD_LLVM_DYLIB #106899

Open
Zentrik opened this issue Sep 1, 2024 · 1 comment
Open

Building ArmSMEStubs.cpp fails on mingw with LLVM_BUILD_LLVM_DYLIB #106899

Zentrik opened this issue Sep 1, 2024 · 1 comment

Comments

@Zentrik
Copy link
Contributor

Zentrik commented Sep 1, 2024

After #93519, when building ArmSMEStubs.cpp on mingw with LLVM_BUILD_LLVM_DYLIB=ON, mlir_arm_sme_abi_stubs_EXPORTS is no longer defined as expected from the cmake file,

add_mlir_library(mlir_arm_sme_abi_stubs
SHARED
ArmSMEStubs.cpp)
target_compile_definitions(mlir_arm_sme_abi_stubs PRIVATE mlir_arm_sme_abi_stubs_EXPORTS)

This causes the following error,

ninja: job failed: /opt/bin/x86_64-w64-mingw32-libgfortran5-cxx11/x86_64-w64-mingw32-clang++ --target=x86_64-w64-mingw32 --sysroot=/opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/ -DGTEST_HAS_RTTI=0 -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/workspace/build/tools/mlir/lib/ExecutionEngine -I/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine -I/workspace/build/include -I/workspace/srcdir/llvm-project/llvm/include -I/workspace/srcdir/llvm-project/mlir/include -I/workspace/build/tools/mlir/include -remap -D__USING_SJLJ_EXCEPTIONS__ -D__CRT__NO_INLINE -pthread -DMLIR_CAPI_ENABLE_WINDOWS_DLL_DECLSPEC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden  -fno-exceptions -funwind-tables -fno-rtti -std=c++17 -MD -MT tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj -MF tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj.d -o tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj -c /workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp
clang++: warning: argument unused during compilation: '-remap' [-Wunused-command-line-argument]
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:37:35: error: dllimport cannot be applied to non-inline function definition
   37 | bool MLIR_ARMSMEABISTUBS_EXPORTED __aarch64_sme_accessible() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:47:40: error: dllimport cannot be applied to non-inline function definition
   47 | sme_state MLIR_ARMSMEABISTUBS_EXPORTED __arm_sme_state() {
      |                                        ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:52:35: error: dllimport cannot be applied to non-inline function definition
   52 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_tpidr2_restore() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:56:35: error: dllimport cannot be applied to non-inline function definition
   56 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_tpidr2_save() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:60:35: error: dllimport cannot be applied to non-inline function definition
   60 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_za_disable() {
      |                                   ^
5 errors generated.

Note how -Dmlir_arm_sme_abi_stubs_EXPORTS is not present in the compiler invocation when it is with #93519 reverted or without LLVM_BUILD_LLVM_DYLIB=ON.

@llvmbot
Copy link
Collaborator

llvmbot commented Sep 1, 2024

@llvm/issue-subscribers-mlir

Author: None (Zentrik)

After https://github.com//pull/93519, when building ArmSMEStubs.cpp on mingw with `LLVM_BUILD_LLVM_DYLIB=ON`, `mlir_arm_sme_abi_stubs_EXPORTS` is no longer defined as expected from the cmake file, https://github.com/llvm/llvm-project/blob/bec1d86516f59997794f7707a50da858792a8d8d/mlir/lib/ExecutionEngine/CMakeLists.txt#L208-L211

This causes the following error,

ninja: job failed: /opt/bin/x86_64-w64-mingw32-libgfortran5-cxx11/x86_64-w64-mingw32-clang++ --target=x86_64-w64-mingw32 --sysroot=/opt/x86_64-w64-mingw32/x86_64-w64-mingw32/sys-root/ -DGTEST_HAS_RTTI=0 -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/workspace/build/tools/mlir/lib/ExecutionEngine -I/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine -I/workspace/build/include -I/workspace/srcdir/llvm-project/llvm/include -I/workspace/srcdir/llvm-project/mlir/include -I/workspace/build/tools/mlir/include -remap -D__USING_SJLJ_EXCEPTIONS__ -D__CRT__NO_INLINE -pthread -DMLIR_CAPI_ENABLE_WINDOWS_DLL_DECLSPEC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O3 -DNDEBUG -fvisibility=hidden -fvisibility-inlines-hidden  -fno-exceptions -funwind-tables -fno-rtti -std=c++17 -MD -MT tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj -MF tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj.d -o tools/mlir/lib/ExecutionEngine/CMakeFiles/obj.mlir_arm_sme_abi_stubs.dir/ArmSMEStubs.cpp.obj -c /workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp
clang++: warning: argument unused during compilation: '-remap' [-Wunused-command-line-argument]
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:37:35: error: dllimport cannot be applied to non-inline function definition
   37 | bool MLIR_ARMSMEABISTUBS_EXPORTED __aarch64_sme_accessible() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:47:40: error: dllimport cannot be applied to non-inline function definition
   47 | sme_state MLIR_ARMSMEABISTUBS_EXPORTED __arm_sme_state() {
      |                                        ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:52:35: error: dllimport cannot be applied to non-inline function definition
   52 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_tpidr2_restore() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:56:35: error: dllimport cannot be applied to non-inline function definition
   56 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_tpidr2_save() {
      |                                   ^
/workspace/srcdir/llvm-project/mlir/lib/ExecutionEngine/ArmSMEStubs.cpp:60:35: error: dllimport cannot be applied to non-inline function definition
   60 | void MLIR_ARMSMEABISTUBS_EXPORTED __arm_za_disable() {
      |                                   ^
5 errors generated.

Note how -Dmlir_arm_sme_abi_stubs_EXPORTS is not present in the compiler invocation when it is with #93519 reverted or without LLVM_BUILD_LLVM_DYLIB=ON.

Zentrik added a commit to Zentrik/Yggdrasil that referenced this issue Sep 1, 2024
giordano added a commit to JuliaPackaging/Yggdrasil that referenced this issue Oct 12, 2024
* [LLVM] Add LLVM_full, LLVM_full_assert 19 recipes

* Update patch

* Test fixes

* Test another fix

* Try less targeted fix

* Remove assert bundled

* Add assert bundled

* Adapt to llvm/llvm-project#89628

* Workaround llvm/llvm-project#106899

* Include less patches to llvm

* Fix `DMLIR_SRC_SHARDER_TABLEGEN`

* Just set `LLVM_NATIVE_TOOL_DIR` instead

* Trigger rebuilds

* Build off of Julia Fork

* Fix tag

* Set correct version

* Set correct version

* Update L/LLVM/common.jl

* Update L/LLVM/common.jl

* [LLVM] Upgrade to v19.1.1

* Bump LLVM version

* Apply suggestions from code review

* Bump LLVM

Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>

* rebuild

* rebuild

---------

Co-authored-by: Zentrik <Zentrik@users.noreply.github.com>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
Co-authored-by: Mosè Giordano <mose@gnu.org>
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