-
Notifications
You must be signed in to change notification settings - Fork 18
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
On Windows only build library with major soversion #97
On Windows only build library with major soversion #97
Conversation
c5c94f3
to
e305c13
Compare
FreeBSD CI is broken because we have no nightlies for this platform. This is unrelated to this PR |
835c13e
to
86a97c3
Compare
@staticfloat do you have any clue of what's wrong with Windows? Note that this is necessary for JuliaLang/julia#47676, so help with pushing this on Windows would be appreciated. Side note, the Windows builds print tons of
messages (28740 seconds == 7:59 hours, which is suspicously close to the difference between Pacific time and UTC). |
I should note that this is technically an ABI breakage for Windows, but frankly the ABI of the Windows build has always been very inconsistent and kinda broken, so that making a new major version to signal it looks an overkill. |
@amontoison this is failing the dgemmt test on Windows, any clue?
|
Is it possible that Windows try to use another |
86a97c3
to
fdcbd82
Compare
I pushed a commit to make the linker more verbose. We'll see the output once we get an available runner, hopefully by tomorrow |
|
It works with our mingw toolchain in BinaryBuilder: sandbox:${WORKSPACE} # echo 'int main(){}' | cc -x c - -Wl,--trace
/opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/4.8.5/../../../../x86_64-w64-mingw32/bin/ld: mode i386pep
/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/crt2.o
/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/crtbegin.o
/tmp/ccimOipk.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlssup.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-charmax.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-mingw_helpers.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-xtxtmode.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-_newmode.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-wildcard.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-natstart.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-crt_handler.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-cinitexe.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-dllargv.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-merr.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-usermatherr.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-pseudo-reloc.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-CRT_fp10.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-gccmain.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-gs_support.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlsmcrt.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlsthrd.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-pesect.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingw32.a)lib64_libmingw32_a-pseudo-reloc-list.o
(/opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/4.8.5/libgcc.a)_chkstk_ms.o
(/opt/x86_64-w64-mingw32/bin/../lib/gcc/x86_64-w64-mingw32/4.8.5/libgcc.a)_ctors.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmingwex.a)lib64_libmingwex_a-mingw_matherr.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00082.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00055.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00096.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-__p__fmode.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00081.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-invalid_parameter_handler.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-__p__acmdln.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01037.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01096.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01045.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00138.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00120.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00289.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00952.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00558.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00090.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01075.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-acrt_iob_func.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00973.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00098.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00991.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01129.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00926.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00939.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00980.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs01099.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhh.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00223.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00113.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqhs00083.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libmsvcrt.a)djeqht.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01409.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01393.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00742.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01221.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01493.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01491.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00629.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00768.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00552.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00556.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00798.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01130.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01222.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01229.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01236.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01458.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00551.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01424.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00318.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs01444.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00983.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00282.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhs00891.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqhh.o
(/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/libkernel32.a)dfeqht.o
/opt/x86_64-w64-mingw32/bin/../x86_64-w64-mingw32/sys-root/lib/../lib/crtend.o I thought it'd work with mingw toolchain also on a real Windows system. What do you think would be the alternative, if this doesn't work? |
I don't understand why the error is thrown by Clang on Windows: |
That's macOS, not Windows, and Clang uses |
Sorry, I thought that it was a Windows build. Forget my two previous messages. |
I guess this is indeed linking against some old |
663dbe1
to
1b5d730
Compare
1b5d730
to
88b6fa0
Compare
88b6fa0
to
4bfd078
Compare
This reverts commit d9e47b9.
This is finally working everywhere! Thanks for the tip about the old lbt being pulled in. |
I tested in JuliaPackaging/Yggdrasil#6122 that this now produces a single shared library, but I just realised that there are also two import libraries (they were there also before). Sigh. |
Oh, that's due to libblastrampoline/src/Makefile Lines 61 to 64 in 1eb1fd3
|
We're using Regardless, we should have the import library in only one location, so if we still want it to be in |
Uhm, yeah, that's probably the main problem. I misread the line I linked in my previous post, I thought we were copying the file from bin to lib, instead is from the build directory to lib. Anyway, this is unrelated to this PR, we had this duplication also before, should we merge this and tag a new release so that we can move on with JuliaLang/julia#47676 and think about the duplicate later? |
This avoids installing a duplicate import library on Windows.
d786d60
to
6a61f91
Compare
Ok, duplicate import library should have been fixed by the last commit, so this is good to go now. |
Keeping multiple copies of LBT on Windows is simply useless, wasteful, and error prone.
Refs
I haven't tested whether it actually builds, I'm hoping CI will tell me.