JuliaLang / julia

The Julia Programming Language
https://julialang.org/
MIT License
45.54k stars 5.47k forks source link

`USE_BINARYBUILDER_LLVM=0` doesn't work on windows #54981

Open Zentrik opened 3 months ago

Zentrik commented 3 months ago

Note, I can build LLVM main separately using cgywin following https://github.com/llvm/llvm-project/issues/19764 (cmake ../llvm -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=mingw64.cmake -DLLVM_VERSION_SUFFIX:STRING="jl" -DLLVM_SHLIB_SYMBOL_VERSION:STRING="JL_LLVM_19.0" -DLLVM_WINDOWS_PREFER_FORWARD_SLASH=False -DBUILD_SHARED_LIBS=ON -DLLVM_ENABLE_PIC=OFF). Using DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON instead of -DBUILD_SHARED_LIBS=ON eventually fails with ld: error: export ordinal too large: 88767 when building libLLVM but it gets well past where USE_BINARYBUILDER_LLVM=0 is erroring below.

USE_BINARYBUILDER_LLVM=0 under msys2 fails on creating symlinks as in https://github.com/JuliaLang/julia/issues/18926.

Under cgywin I see some sort of header issue like in https://github.com/msys2/MINGW-packages/issues/4774. Doesn't seem to make a difference whether I'm using the Julia llvm fork for v17 or v18 or llvm main.

[  0%] Building CXX object lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.obj
cd /cygdrive/c/Users/gag/Documents/Code/julia/deps/scratch/llvm-julia-18.1.7-0/build_Release/lib/Support && /usr/bin/x86_64-w64-mingw32-g++ -m64 -DGTEST_HAS_RTTI=0 -D_FILE_OFFSET_BITS=64 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS @CMakeFiles/LLVMSupport.dir/includes_CXX.rsp -D__USING_SJLJ_EXCEPTIONS__ -D__CRT__NO_INLINE -fno-gnu-unique -Wa,-mbig-obj -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -ffunction-sections -fdata-sections  -O2 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.obj -MF CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.obj.d -o CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.obj -c /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/x86_64-w64-mingw32/bits/gthr.h:148,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/atomicity.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:39,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/x86_64-w64-mingw32/bits/gthr-default.h: In function 'int __gthread_yield()':
/usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/x86_64-w64-mingw32/bits/gthr-default.h:693:10: error: 'sched_yield' was not declared in this scope
  693 |   return __gthrw_(sched_yield) ();
      |          ^~~~~~~~
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cctype:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/localefwd.h:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h: At global scope:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:414:23: error: expected ',' or '...' before numeric constant
  414 |   int __cdecl abs(int _X);
      |                       ^~
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:415:26: error: expected ',' or '...' before numeric constant
  415 |   long __cdecl labs(long _X);
      |                          ^~
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/sec_api/stdlib_s.h:9,
                 from /usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:769,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/include/stdlib.h:39:3: error: conflicting declaration 'typedef struct div_t div_t'
   39 | } div_t;
      |   ^~~~~
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:63:5: note: previous declaration as 'typedef struct _div_t div_t'
   63 |   } div_t;
      |     ^~~~~
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/sec_api/stdlib_s.h:9,
                 from /usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:769,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/include/stdlib.h:45:3: error: conflicting declaration 'typedef struct ldiv_t ldiv_t'
   45 | } ldiv_t;
      |   ^~~~~~
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:68:5: note: previous declaration as 'typedef struct _ldiv_t ldiv_t'
   68 |   } ldiv_t;
      |     ^~~~~~
In file included from /usr/x86_64-w64-mingw32/sys-root/mingw/include/sec_api/stdlib_s.h:9,
                 from /usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:769,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/include/stdlib.h:52:3: error: conflicting declaration 'typedef struct lldiv_t lldiv_t'
   52 | } lldiv_t;
      |   ^~~~~~~
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:729:61: note: previous declaration as 'typedef struct lldiv_t lldiv_t'
  729 |   typedef struct { __MINGW_EXTENSION long long quot, rem; } lldiv_t;
      |                                                             ^~~~~~~
In file included from /usr/include/errno.h:9,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cerrno:42,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:44,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/include/sys/errno.h:26:36: error: conflicting declaration 'const char* const _sys_errlist []'
   26 | extern __IMPORT const char * const _sys_errlist[];
      |                                    ^~~~~~~~~~~~
In file included from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/cstdlib:75,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/ext/string_conversions.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/basic_string.h:6608,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/string:55,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/locale_classes.h:40,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/ios_base.h:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/streambuf:41,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/bits/streambuf_iterator.h:35,
                 from /usr/lib/gcc/x86_64-w64-mingw32/11/include/c++/iterator:66,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/ADL.h:13,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/iterator_range.h:21,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/ADT/StringRef.h:14,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/include/llvm/Support/AMDGPUMetadata.h:18,
                 from /cygdrive/c/Users/gag/Documents/Code/julia/deps/srccache/llvm-julia-18.1.7-0/llvm/lib/Support/AMDGPUMetadata.cpp:15:
/usr/x86_64-w64-mingw32/sys-root/mingw/include/stdlib.h:173:38: note: previous declaration as 'char* _sys_errlist [1]'
  173 |   extern __declspec(dllimport) char *_sys_errlist[1];
      |                                      ^~~~~~~~~~~~
make[4]: *** [lib/Support/CMakeFiles/LLVMSupport.dir/build.make:95: lib/Support/CMakeFiles/LLVMSupport.dir/AMDGPUMetadata.cpp.obj] Error 1
make[4]: Leaving directory '/cygdrive/c/Users/gag/Documents/Code/julia/deps/scratch/llvm-julia-18.1.7-0/build_Release'
make[3]: *** [CMakeFiles/Makefile2:9704: lib/Support/CMakeFiles/LLVMSupport.dir/all] Error 2
make[3]: Leaving directory '/cygdrive/c/Users/gag/Documents/Code/julia/deps/scratch/llvm-julia-18.1.7-0/build_Release'
make[2]: *** [Makefile:159: all] Error 2
make[2]: Leaving directory '/cygdrive/c/Users/gag/Documents/Code/julia/deps/scratch/llvm-julia-18.1.7-0/build_Release'

make[1]: *** [/cygdrive/c/Users/gag/Documents/Code/julia/deps/llvm.mk:270: scratch/llvm-julia-18.1.7-0/build_Release/build-compiled] Error 2
make[1]: Leaving directory '/cygdrive/c/Users/gag/Documents/Code/julia/deps'
make: *** [Makefile:79: julia-deps] Error 2
giordano commented 3 months ago

eventually fails with ld: error: export ordinal too large: 88767 when building libLLVM

I seem to remember we had this problem also on Yggdrasil, but I'm not sure what was the resolution. @gbaraldi did we switch to lld as linker for this purpose? Or was it something else?

Zentrik commented 3 months ago

I thought switching to clang would fix it based on this but I still hit that error https://github.com/JuliaPackaging/Yggdrasil/blob/597b7134c0e2c3c1c7a3a51b459f801813dda664/L/LLVM/common.jl#L274-L277

gbaraldi commented 3 months ago

Need clang + lld. And make sure your build starts from scratch

Zentrik commented 4 weeks ago

The msys2 issue where extracting tarballs with symlinks to as of yet un extracted files fails can be fixed by export MSYS=winsymlinks:sysfile (this at least gets us into LLVM's CMake at which point I get some error with zlib's compress2 not being found). On the cygwin front, the clang package's latest version is v8 and there's no lld package.