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

libjulia_jll: add Julia 1.9, update 1.8 #4461

Merged
merged 1 commit into from
Feb 20, 2022

Conversation

fingolfin
Copy link
Member

@fingolfin fingolfin commented Feb 18, 2022

This PR will be combined with PR #4320 in the end, but for now it helps to focus on the various issues separately.

@fingolfin fingolfin force-pushed the mh/libjulia-1.9 branch 3 times, most recently from 164232c to 2b4cb76 Compare February 18, 2022 16:27
@fingolfin
Copy link
Member Author

fingolfin commented Feb 18, 2022

Build error for armv6l-linux-gnueabihf-cxx03-julia_version+1.8.0 (and several related targets (various ARM/Linux variants: musl and libc, 1.8 and 1.9, 32 and 64 bit, etc.)

[16:34:50] /workspace/srcdir/julia/src/debuginfo.cpp: In member function 'void JITObjectRegistry::registerJITObject(const llvm::object::ObjectFile&, std::function<long long unsigned int(const llvm::StringRef&)>, std::function<void*(void*)>)':
[16:34:50] /workspace/srcdir/julia/src/debuginfo.cpp:228:33: error: 'L' was not declared in this scope
[16:34:50]              uint64_t loadaddr = L.getSectionLoadAddress(section);
[16:34:50]                                  ^
[16:34:50] make[1]: *** [Makefile:221: debuginfo.o] Error 1

UPDATE: Reported at JuliaLang/julia#44254

@dnadlinger
Copy link

See JuliaLang/julia#44270 – unfortunately, I can't easily test this myself.

@giordano
Copy link
Member

giordano commented Feb 19, 2022

It's interesting that the windows build in v1.9.0 is already broken while v1.8.0 is fine, there shouldn't be many changes.... I don't know what I had seen, they're not building both in v1.8.0 and v1.9.0

@fingolfin
Copy link
Member Author

I think you mean they are both not building in 1.8 and 1.9?

[00:24:42]  i686-w64-mingw32-g++ -march=pentium4 -m32 -shared   -Wl,--out-implib,/workspace/srcdir/julia/usr/lib/libjulia-internal.dll.a -pipe  -fno-rtti -std=c++14 -mincoming-stack-boundary=2 -I/workspace/destdir/include -DNDEBUG  -O3 -ggdb2 -falign-functions -momit-leaf-frame-pointer -D_GNU_SOURCE -I. -I/workspace/srcdir/julia/src -I/workspace/srcdir/julia/src/flisp -I/workspace/srcdir/julia/src/support -I/workspace/destdir/include -I/workspace/srcdir/julia/usr/include -I/workspace/srcdir/julia/deps/valgrind -Wall -Wno-strict-aliasing -fno-omit-frame-pointer -fvisibility=hidden -fno-common -Wno-comment -Wpointer-arith -Wundef -Wno-unused-result -DJL_BUILD_ARCH='"i686"' -DJL_BUILD_UNAME='"NT"' -I -DLLVM_SHLIB -DLIBRARY_EXPORTS "-DJL_SYSTEM_IMAGE_PATH=\"../lib/julia/sys.dll\"" "-DJL_LIBJULIA_SONAME=\"libjulia.dll\""       "-DJL_LIBJULIA_INTERNAL_SONAME=\"libjulia-internal.dll\"" ./jloptions.o ./runtime_ccall.o ./rtutils.o ./win32_ucontext.o ./jltypes.o ./gf.o ./typemap.o ./smallintset.o ./ast.o ./builtins.o ./module.o ./interpreter.o ./symbol.o ./dlload.o ./sys.o ./init.o ./task.o ./array.o ./dump.o ./staticdata.o ./toplevel.o ./jl_uv.o ./datatype.o ./simplevector.o ./runtime_intrinsics.o ./precompile.o ./threading.o ./partr.o ./stackwalk.o ./gc.o ./gc-debug.o ./gc-pages.o ./gc-stacks.o ./gc-alloc-profiler.o ./method.o ./jlapi.o ./signal-handling.o ./safepoint.o ./timing.o ./subtype.o ./crc32c.o ./APInt-C.o ./processor.o ./ircode.o ./opaque_closure.o ./codegen-stubs.o ./coverage.o  -o /workspace/srcdir/julia/usr/bin/libjulia-internal.dll -Wl,--stack,8388608 -Wl,--large-address-aware -L/workspace/destdir/bin  -L/workspace/srcdir/julia/usr/lib -L/workspace/srcdir/julia/usr/bin -Wl,--whole-archive ./flisp/libflisp.a -Wl,--whole-archive ./support/libsupport.a -ljulia /workspace/destdir/lib/libuv.a -lutf8proc -Wl,--no-whole-archive  -L/workspace/destdir/bin -lLLVM  -Wl,--export-all-symbols -Wl,--version-script=/workspace/srcdir/julia/src/julia.expmap -Wl,--no-whole-archive -lpsapi -lkernel32 -lws2_32 -liphlpapi -lwinmm -ldbghelp -luserenv -lsecur32 -latomic -lssp 
[00:24:42] /opt/i686-w64-mingw32/bin/../lib/gcc/i686-w64-mingw32/7.1.0/../../../../i686-w64-mingw32/bin/ld: cannot find -lLLVM
[00:24:42] collect2: error: ld returned 1 exit status

Also seeing this, not (yet) sure if it matters:

25l25h┌ Warning: Dependency LibUnwind_jll does not have a mapping for artifact LibUnwind for platform i686-w64-mingw32-libgfortran4-cxx03-julia_version+1.9.0
└ @ BinaryBuilderBase /depot/packages/BinaryBuilderBase/sAP7F/src/Prefix.jl:658
##[warning]Dependency LibUnwind_jll does not have a mapping for artifact LibUnwind for platform i686-w64-mingw32-libgfortran4-cxx03-julia_version+1.9.0
┌ Warning: Dependency LLVMLibUnwind_jll does not have an (Stdlib)Artifacts.toml in /depot/packages/LLVMLibUnwind_jll/4v1VK!
└ @ BinaryBuilderBase /depot/packages/BinaryBuilderBase/sAP7F/src/Prefix.jl:649
##[warning]Dependency LLVMLibUnwind_jll does not have an (Stdlib)Artifacts.toml in /depot/packages/LLVMLibUnwind_jll/4v1VK!

@fingolfin
Copy link
Member Author

Looking at https://github.com/JuliaBinaryWrappers/LLVM_full_jll.jl/releases/download/LLVM_full-v13.0.1%2B0/LLVM_full.v13.0.1.x86_64-w64-mingw32-cxx11.tar.gz I see these DLLs:

./bin/libclang-cpp.dll
./bin/libclang.dll
./bin/libLLVM-13jl.dll
./bin/libLTO.dll
./bin/libmlir_async_runtime.dll
./bin/libmlir_c_runner_utils.dll
./bin/libMLIR.dll
./bin/libmlir_runner_utils.dll
./bin/libRemarks.dll
./tools/libclang-cpp.dll
./tools/libclang.dll
./tools/libLLVM-13jl.dll
./tools/libLTO.dll
./tools/libmlir_async_runtime.dll
./tools/libmlir_c_runner_utils.dll
./tools/libMLIR.dll
./tools/libmlir_runner_utils.dll
./tools/libRemarks.dll
./tools/libz.dll

So it is looking for libLLVM.dll when it should be looking for libLLVM-13jl.dll -- we already adjust LLVMLINK for this, but somehow this doesn't work for Mingw in Julia >= 1.8 anymore. Probably a change in the build system

@fingolfin
Copy link
Member Author

We already do this:

    override LLVMLINK=${LLVMLINK}    # For Julia <= 1.7
    override RT_LLVMLINK=${LLVMLINK} # For Julia >= 1.8
    override CG_LLVMLINK=${LLVMLINK} # For Julia >= 1.8

@fingolfin
Copy link
Member Author

Ahh but not for MingW. OK, then it is clear how to proceed, I guess...

Co-authored-by: Mosè Giordano <mose@gnu.org>
@fingolfin fingolfin marked this pull request as ready for review February 20, 2022 21:17
@fingolfin
Copy link
Member Author

Seems to be all set now

@giordano giordano merged commit 24776e4 into JuliaPackaging:master Feb 20, 2022
@fingolfin fingolfin deleted the mh/libjulia-1.9 branch February 20, 2022 22:18
simeonschaub pushed a commit to simeonschaub/Yggdrasil that referenced this pull request Feb 23, 2022
Co-authored-by: Mosè Giordano <mose@gnu.org>

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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants