PackageCompiler.jl icon indicating copy to clipboard operation
PackageCompiler.jl copied to clipboard

Need to update Windows compilers for Julia 1.11

Open KristofferC opened this issue 1 year ago • 1 comments

The current one we use spits out a bunch of

2024-01-15T16:40:05.8024498Z Warning: .drectve `-exclude-symbols:jfptr_only_42205 ' unrecognized
2024-01-15T16:40:05.8052985Z Warning: .drectve `-exclude-symbols:julia_eval_41586 ' unrecognized
2024-01-15T16:40:05.8083804Z Warning: .drectve `-exclude-symbols:jfptr_eval_41587 ' unrecognized
2024-01-15T16:40:05.8114625Z Warning: .drectve `-exclude-symbols:jfptr_domath_65456 ' unrecognized
2024-01-15T16:40:05.8144650Z Warning: .drectve `-exclude-symbols:julia_peek_45894 ' unrecognized

on master CI when creating the sysimage. @gbaraldi suggested to try use https://github.com/mstorsjo/llvm-mingw/.

KristofferC avatar Jan 19 '24 11:01 KristofferC

Just out of curiosity, are these warnings fatal and/or do they result in an un-usable sysimage?

(I think we should still do this task either way; I'm just trying to figure out how high of a priority it is.)

DilumAluthge avatar Oct 18 '24 03:10 DilumAluthge

Am getting similar errors while trying to do an FMU Export from Julia

smitha999 avatar Nov 05 '24 07:11 smitha999

Warning: .drectve -exclude-symbols:julia_copy_26305 ' unrecognized │ Warning: .drectve -exclude-symbols:jfptr_copy_26306 ' unrecognized │ Warning: .drectve -exclude-symbols:jfptr_ntuple_25526 ' unrecognized │ Warning: .drectve -exclude-symbols:jfptr__memory_offset_28906 ' unrecognized │ Warning: .drectve -exclude-symbols:jfptr_throw_boundserror_23456 ' unrecognized │ Warning: .drectve -exclude-symbols:julia_throw_boundserror_23449 ' unrecognized │ Warning: .drectve -exclude-symbols:jfptr_throw_boundserror_23441 ' unrecognized │ . . │ Warning: .drectve -exclude-symbols:jfptr_throw_boundserror_23279 ' unrecognized │ Warning: .drectve -exclude-symbols:"jfptr_setindexNOT._24863" ' unrecognized │ Warning: .drectve -exclude-symbols:julia_has_safe_def_35574 ' unrecognized

smitha999 avatar Nov 05 '24 07:11 smitha999

update Windows compilers for Julia 1.11

If I understand correctly, “Windows compilers for Julia” refers to the compilers currently used to build julia. Right now it's mingw-w64-x86_64-gcc in MSYS2. https://github.com/JuliaCI/rootfs-images/blob/main/windows/package-x86_64/Dockerfile#L8-L9

Maybe we could try updating the version of MSYS2 first, which will also update the version of gcc, and see if that fixes the problem. Then try migrating to llvm-mingw.

The rust community is also encountering this problem: https://github.com/rust-lang/rust/issues/112368 This is mainly a compatibility issue between LLVM and GUN LD, which has been fixed in GUN ld >= 2.40. So maybe upgrading the MSYS2 is enough.

inkydragon avatar Nov 27 '24 06:11 inkydragon

PackageCompiler does not use the same compiler as the Julia repo does to build julia. PackageCompiler uses https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z (see https://github.com/JuliaLang/PackageCompiler.jl/blob/master/Artifacts.toml).

KristofferC avatar Nov 27 '24 08:11 KristofferC

I don't see the error at https://github.com/Zentrik/llvm_julia_tester/actions/runs/12041711630/job/33580110343 which should be using the latest compiler from msys2 for 64bit. 32 bit will probably be more difficult as we don't use the default signal handing so harder to find up to date compilers.

Zentrik avatar Nov 27 '24 13:11 Zentrik

Another choice is using: https://github.com/niXman/mingw-builds-binaries/releases We could use gcc 14.1.0 or 14.2.0.

gcc.exe	12.2.0 	x86_64-posix-seh-rev0
GNU ld 	2.38

gcc.exe 13.1.0	x86_64-posix-seh-rev1
GNU ld 	2.39
gcc.exe 13.2.0  x86_64-posix-seh-rev1
GNU ld 	2.39

gcc.exe 14.1.0	x86_64-posix-seh-rev0
GNU ld 	2.42
gcc.exe 14.2.0	x86_64-posix-seh-rev0
GNU ld 	2.42

inkydragon avatar Nov 27 '24 13:11 inkydragon

From a local test that seems to work well. Thanks for finding it. I'll try update the artifact file and see what happens.

KristofferC avatar Nov 27 '24 15:11 KristofferC