Skip to content

Commit

Permalink
[libblastrampoline] Bump to v5.0.1
Browse files Browse the repository at this point in the history
This should allow us to use CBLAS symbols in MKL v2022.  Verified that
this fixes JuliaLinearAlgebra/libblastrampoline#56
  • Loading branch information
staticfloat committed Feb 2, 2022
1 parent e3b681c commit 766ae6c
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 39 deletions.
2 changes: 1 addition & 1 deletion deps/Versions.make
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ OBJCONV_JLL_NAME := Objconv
OBJCONV_JLL_VER := 2.49.1+0

# blastrampoline
BLASTRAMPOLINE_VER := 4.0.0
BLASTRAMPOLINE_VER := 5.0.1
BLASTRAMPOLINE_JLL_NAME := libblastrampoline

# OpenBLAS
Expand Down
66 changes: 34 additions & 32 deletions deps/checksums/blastrampoline
Original file line number Diff line number Diff line change
@@ -1,32 +1,34 @@
libblastrampoline.v4.0.0+0.aarch64-apple-darwin.tar.gz/md5/7d816200f4a97199996a67af0ba2acd5
libblastrampoline.v4.0.0+0.aarch64-apple-darwin.tar.gz/sha512/fd3037ba25b9e874cc99bcacddb4a7a7777a493cc2c6323ad34e2dc927c2934d8f2092b6fa0058f3bdd3f2c3bf9b99387ce23590d11b0b7ef06ff9908f051979
libblastrampoline.v4.0.0+0.aarch64-linux-gnu.tar.gz/md5/5b43a9709a478fe481b55a70b828e951
libblastrampoline.v4.0.0+0.aarch64-linux-gnu.tar.gz/sha512/6096877375ce430239e7e074c688349669cefd24e3bd677453620ad06fb17b4a6addcca10f8c4d929c24bbf6a80c54b3f922a9db0ad4023cff1e7da7fa82adf7
libblastrampoline.v4.0.0+0.aarch64-linux-musl.tar.gz/md5/50a474f71ebfc02d70bf2810d4dc460b
libblastrampoline.v4.0.0+0.aarch64-linux-musl.tar.gz/sha512/99293784a634286b44e5aaaf196d88f9bc607cfda24f833c30373f3d35a44fafbbd2203ea9c002826d55208a47f4de6c73dec02b56023f15293f69f7712411ab
libblastrampoline.v4.0.0+0.armv6l-linux-gnueabihf.tar.gz/md5/f68256af2059ac4d64c07529380500ac
libblastrampoline.v4.0.0+0.armv6l-linux-gnueabihf.tar.gz/sha512/804a79c8fcea320e67976b49747a41d5227c7680e0adf3c1c3e925853773418b2240f7a34de34f0fce933234479ef5e33e297cc29749f6187adf9bc15da76382
libblastrampoline.v4.0.0+0.armv6l-linux-musleabihf.tar.gz/md5/c15fb498f38e2beb983611d505a40924
libblastrampoline.v4.0.0+0.armv6l-linux-musleabihf.tar.gz/sha512/647454fab5a8600827aea7c5d73b5f6350bd52f4efe8cb452cb0007d7d523caa90912653e0358c58aa6c36488445882e25a212d345c743913a5402fc2db92e73
libblastrampoline.v4.0.0+0.armv7l-linux-gnueabihf.tar.gz/md5/584366bb093ca3c60fbbde94bb63c18b
libblastrampoline.v4.0.0+0.armv7l-linux-gnueabihf.tar.gz/sha512/e9e1d04a483845b3b62a0270d1ff2ed34b583f21788118cc1fc51ef9047c69cc2633608edefffe629d101736cdb08f87071a233e3bec3ea961d6b7ad27fd55b2
libblastrampoline.v4.0.0+0.armv7l-linux-musleabihf.tar.gz/md5/3dd37977f077a1ebb07c8cbd7052b906
libblastrampoline.v4.0.0+0.armv7l-linux-musleabihf.tar.gz/sha512/ef18543df02d643a83b8a68264fa739a3568da624b5a40d16ba22a6ecd9acf3a85a62bb1979dca98574126a0cdd51732795a50665607580f95b8ae08eb5880f1
libblastrampoline.v4.0.0+0.i686-linux-gnu.tar.gz/md5/e1c7d1d9046a15e0446fd826f17038d0
libblastrampoline.v4.0.0+0.i686-linux-gnu.tar.gz/sha512/482ee1fbe2a183c11f20b4ebbcd10a053fa6d3bd68190339a39dfbaa768bf5baac0f24b68087b92c5f7489b277ca35f0a84e766d0f23c623f3fcd0cc4bbeb67d
libblastrampoline.v4.0.0+0.i686-linux-musl.tar.gz/md5/34ea6a4e3ec73e842aca69930342bbb7
libblastrampoline.v4.0.0+0.i686-linux-musl.tar.gz/sha512/97cfcd3659d700a915f0b9ffcd4039bed0dd0bccf786bf2b037304c3cd2f9c033c58ecb5268f2a7a3d43de1f59f85f562e9fd71fd05b2b5e2cba73331fa009e2
libblastrampoline.v4.0.0+0.i686-w64-mingw32.tar.gz/md5/713fb54fd7373847b314002dc90b0c8e
libblastrampoline.v4.0.0+0.i686-w64-mingw32.tar.gz/sha512/6535266ff16e7487bf3971b29a6662781beb38b385a6a07d1581702f19aa44ba7ab8c02d6d5934304c38cb918ba5ecfc0a05a2af6dd1ac07ea71084d879a0fc3
libblastrampoline.v4.0.0+0.powerpc64le-linux-gnu.tar.gz/md5/70c5629d1c50fe8d7d036dd272bd38fe
libblastrampoline.v4.0.0+0.powerpc64le-linux-gnu.tar.gz/sha512/69ed2ba821a278f0545df798f084c8a3912966b8831ffadb9a1262ee9212ded65dfcfa9282e3982c02c54d0121f29d6d66bf7d68866c93f34724f87f898a93b1
libblastrampoline.v4.0.0+0.x86_64-apple-darwin.tar.gz/md5/daf5d34cadbc15912d67b584f59e220e
libblastrampoline.v4.0.0+0.x86_64-apple-darwin.tar.gz/sha512/becfc35ffe9d0db8569b74ff6056dc6e0c685c93f3cb24104e0ae5f8232262fea1ad1507d06a389d95ec761ffd60ee094bcf4cd000a89c959b812bc0271d781e
libblastrampoline.v4.0.0+0.x86_64-linux-gnu.tar.gz/md5/333b89ae831b9b3479542da44a850e44
libblastrampoline.v4.0.0+0.x86_64-linux-gnu.tar.gz/sha512/27179020499e378fe62217832ef47af6b57fd1abe6eda9cf31432f435157d5c6da025200b827ecf7508141e515cb21192366aba3d60658b7e8ab36e2e3bd7adc
libblastrampoline.v4.0.0+0.x86_64-linux-musl.tar.gz/md5/cf0219c4f8901a961cab5bf1043892d7
libblastrampoline.v4.0.0+0.x86_64-linux-musl.tar.gz/sha512/b18d1e2d215060e95484e53cc56a7a8dea46d0c58c2b9c6664e3783cbabed7a2838a67f5aeed418c4a4304ecb2419f0f1e362c3161b29967b7d2274b3bb5b960
libblastrampoline.v4.0.0+0.x86_64-unknown-freebsd.tar.gz/md5/e46abe31f535f8e639ac16900afc8d9d
libblastrampoline.v4.0.0+0.x86_64-unknown-freebsd.tar.gz/sha512/a9ecedc78451ebce290b7ae6ccfd3ee6ba1ab53e73c36f5f22925c9e9520452fd9948954e7f3e1a970a03ec592acf4336227c080cde43a7c89cd049eace502b1
libblastrampoline.v4.0.0+0.x86_64-w64-mingw32.tar.gz/md5/4f1dfd23d177ba44322a643bf2bd69a4
libblastrampoline.v4.0.0+0.x86_64-w64-mingw32.tar.gz/sha512/29cf3ab251e521207b1c9ce7bb73495fb33c549ed7f28e08e6b10d299b9aa6a1d4dc41ed63ffbc21ab8df22d983339050e2cd6cda92c84fb4c3fd3d5e1f21631
blastrampoline-23de7a09bf354fe6f655c457bab5bf47fdd2486d.tar.gz/md5/b81efa951fd909591339189f5909ff6b
blastrampoline-23de7a09bf354fe6f655c457bab5bf47fdd2486d.tar.gz/sha512/1c2558bab0aeaa76e7094d8a6a9798c95f2cf4efe2960640b70f1fd752f3dfb73813d9de93b539426376571febaab22ac22c2f903ccdf3296c7b067af92fecdc
libblastrampoline.v5.0.1+0.aarch64-apple-darwin.tar.gz/md5/8b2b28517ef5db95a0b440f1a936422e
libblastrampoline.v5.0.1+0.aarch64-apple-darwin.tar.gz/sha512/3d479efc47b8c81fa85fd4d2a868a48304051432b92af90a2bcd2142673f2c422419731b8941f987aed429064532e8634ce3ea8f8d71222cf2d9b9e1e8ba2f7f
libblastrampoline.v5.0.1+0.aarch64-linux-gnu.tar.gz/md5/23e53049a0c30c8d24482a25954ee497
libblastrampoline.v5.0.1+0.aarch64-linux-gnu.tar.gz/sha512/c5ba3609e5c47066d8a10acdd1c13e25a78bea6003a39a354000c832aeb1cf04a29392089600b10f0d6e5544aa910412bb50f238ac1f81d55ac15f70aaeb3161
libblastrampoline.v5.0.1+0.aarch64-linux-musl.tar.gz/md5/5b6770a56cf3632473726a6da3da8ac4
libblastrampoline.v5.0.1+0.aarch64-linux-musl.tar.gz/sha512/13f01e51b754a7bb4f78d0217380923e353499815872694718922a842fb1d41774e83ec07305b0ca9df2b054e26a626c20e685127e467b3bbb5adb3b9de3c7d3
libblastrampoline.v5.0.1+0.armv6l-linux-gnueabihf.tar.gz/md5/32f33430008184705b37afcce7d09fdc
libblastrampoline.v5.0.1+0.armv6l-linux-gnueabihf.tar.gz/sha512/2af9ce233b473f2c81c4ba2e82253a88a519e4cbfa2cd410b27b1f1d7d06559376dd3743951105dbaa784310cce378516978b0d56bd8a196e2eb6c5fb7e6e969
libblastrampoline.v5.0.1+0.armv6l-linux-musleabihf.tar.gz/md5/52da6ab8b5a9e03aebb032441b668d65
libblastrampoline.v5.0.1+0.armv6l-linux-musleabihf.tar.gz/sha512/a6f1a375b61642e0b2fd235e27b5bf7e0cd1ff308cdfef27b904f62dfb9ac2bc8fa4e9a7869851310da90af4797994d86d581354070810ffedf3deea5afcc388
libblastrampoline.v5.0.1+0.armv7l-linux-gnueabihf.tar.gz/md5/08fe2bf27a14e6a6fc4f6b394051aac9
libblastrampoline.v5.0.1+0.armv7l-linux-gnueabihf.tar.gz/sha512/fdf8d054c67ca3e60dfc7739e02e28817d4510558341d9666b3ccc35818d1ea835a30676cfbe66bbb119c5574c683f1626088119dfc672bf730c87811835e48e
libblastrampoline.v5.0.1+0.armv7l-linux-musleabihf.tar.gz/md5/836fdbe9e759c71b3c7ae6be2ff6cd6a
libblastrampoline.v5.0.1+0.armv7l-linux-musleabihf.tar.gz/sha512/6333f8b9270f51c9e520ef8eee52c1796659bd7574c4e8cc04774d3b5e0574af63e5b252cc3340a62bf44771970331839083a528f402bc7929f32cffdbeba876
libblastrampoline.v5.0.1+0.i686-linux-gnu.tar.gz/md5/11f127c422a4b51d6cd0abe370176c25
libblastrampoline.v5.0.1+0.i686-linux-gnu.tar.gz/sha512/ad8510a804637ed144ee931a11629ee86e3c29e36be394c1f020a04e68b64a04a0eaa976961a993be0693b1f57b687f18dd25d3313aafa217a9140913dc9849d
libblastrampoline.v5.0.1+0.i686-linux-musl.tar.gz/md5/c865cd79d083de137714df55dfd015c9
libblastrampoline.v5.0.1+0.i686-linux-musl.tar.gz/sha512/99f4938626f84e5636231f34842c6877be5ac0d528f7bcae6b15d51b82d0daa06eb7d086a28f2c516234a989dd384f932886303f13cbac33f972fbf64b16dfb9
libblastrampoline.v5.0.1+0.i686-w64-mingw32.tar.gz/md5/e9e2cbb1c90b691fd06f4df81674d36a
libblastrampoline.v5.0.1+0.i686-w64-mingw32.tar.gz/sha512/c32a7449476f994f8d1bdb576959d6cc54018ac33be2d691b8627467ff5870deac7427e83f275db9b675c5d92bd13254979b06da33b782d6de3b49b1a6dda19c
libblastrampoline.v5.0.1+0.powerpc64le-linux-gnu.tar.gz/md5/5904dce9e258e4bdf71493e6cdc5fb20
libblastrampoline.v5.0.1+0.powerpc64le-linux-gnu.tar.gz/sha512/e10761289aaf985e96e0c908f988218450b54b78a5ba0ca67b509d63c422849471b38e952b93e1de0ffa92d9b8e76b16cfd733a05940203213f7f10cdb953dc9
libblastrampoline.v5.0.1+0.x86_64-apple-darwin.tar.gz/md5/2d15a24ce47dc67ef575ca514530734e
libblastrampoline.v5.0.1+0.x86_64-apple-darwin.tar.gz/sha512/5209953e6ed72c5840b926c2c50e67f3ef2e8612877e5c6c4962e687870a9c4f95ab83fab1db77419ffdd21e303e5a951a86d21979cbd2e2e8b9d65a2b86a693
libblastrampoline.v5.0.1+0.x86_64-linux-gnu.tar.gz/md5/67092e794898efbe1d75bbaf19912538
libblastrampoline.v5.0.1+0.x86_64-linux-gnu.tar.gz/sha512/cc117c4d6d7a34fc7abfff4d40584f63b3ed80a2aa8be887f22a65b25e9196a2173d624bda77e8a1f2c401792c090948ad0a9069af3e48ee886664e1b2dd771f
libblastrampoline.v5.0.1+0.x86_64-linux-musl.tar.gz/md5/32f65fa0681d81ab4f5a84d18ec0ef40
libblastrampoline.v5.0.1+0.x86_64-linux-musl.tar.gz/sha512/177f25c3108af15653726871b110d77e0a5e94b06bd6996503f83b7dd7c0d9877beff5eeadbdff4952ac606fcec426c04a97566efc2d88d75ed380e566ffe0c0
libblastrampoline.v5.0.1+0.x86_64-unknown-freebsd.tar.gz/md5/12494ac279b869c740712b8f774edadf
libblastrampoline.v5.0.1+0.x86_64-unknown-freebsd.tar.gz/sha512/6b896996f20552bb05d22fb314b6b9ad8e4359aec31f90fe7029cd13d37e6db1c305a87d9622ff4b036b155a12a5b305a8fd56e4074149bad8c3e6a225c70c5d
libblastrampoline.v5.0.1+0.x86_64-w64-mingw32.tar.gz/md5/4fdbfc6384ba4dbc74eda97dff919511
libblastrampoline.v5.0.1+0.x86_64-w64-mingw32.tar.gz/sha512/e752486b9e6f6ed293a42337f432c8dcb86246523864674be5ff35fcc49f8cc848f77c41b2af1903959938f620d68b1de6028afc662f9e893045308eef72d624
47 changes: 42 additions & 5 deletions stdlib/LinearAlgebra/src/lbt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ struct lbt_library_info_t
suffix::Cstring
active_forwards::Ptr{UInt8}
interface::Int32
complex_retstyle::Int32
f2c::Int32
cblas::Int32
end
const LBT_INTERFACE_LP64 = 32
const LBT_INTERFACE_ILP64 = 64
Expand All @@ -31,13 +33,35 @@ const LBT_F2C_MAP = Dict(
)
const LBT_INV_F2C_MAP = Dict(v => k for (k, v) in LBT_F2C_MAP)

const LBT_COMPLEX_RETSTYLE_NORMAL = 0
const LBT_COMPLEX_RETSTYLE_ARGUMENT = 1
const LBT_COMPLEX_RETSTYLE_UNKNOWN = -1
const LBT_COMPLEX_RETSTYLE_MAP = Dict(
LBT_COMPLEX_RETSTYLE_NORMAL => :normal,
LBT_COMPLEX_RETSTYLE_ARGUMENT => :argument,
LBT_COMPLEX_RETSTYLE_UNKNOWN => :unknown,
)
const LBT_INV_COMPLEX_RETSTYLE_MAP = Dict(v => k for (k, v) in LBT_COMPLEX_RETSTYLE_MAP)

const LBT_CBLAS_CONFORMANT = 0
const LBT_CBLAS_DIVERGENT = 1
const LBT_CBLAS_UNKNOWN = -1
const LBT_CBLAS_MAP = Dict(
LBT_CBLAS_CONFORMANT => :conformant,
LBT_CBLAS_DIVERGENT => :divergent,
LBT_CBLAS_UNKNOWN => :unknown,
)
const LBT_INV_CBLAS_MAP = Dict(v => k for (k, v) in LBT_CBLAS_MAP)

struct LBTLibraryInfo
libname::String
handle::Ptr{Cvoid}
suffix::String
active_forwards::Vector{UInt8}
interface::Symbol
complex_retstyle::Symbol
f2c::Symbol
cblas::Symbol

function LBTLibraryInfo(lib_info::lbt_library_info_t, num_exported_symbols::UInt32)
return new(
Expand All @@ -46,7 +70,9 @@ struct LBTLibraryInfo
unsafe_string(lib_info.suffix),
unsafe_wrap(Vector{UInt8}, lib_info.active_forwards, div(num_exported_symbols,8)+1),
LBT_INTERFACE_MAP[lib_info.interface],
LBT_COMPLEX_RETSTYLE_MAP[lib_info.complex_retstyle],
LBT_F2C_MAP[lib_info.f2c],
LBT_CBLAS_MAP[lib_info.cblas],
)
end
end
Expand Down Expand Up @@ -112,7 +138,9 @@ function Base.show(io::IO, mime::MIME{Symbol("text/plain")}, lbt::LBTLibraryInfo
summary(io, lbt); println(io)
println(io, "├ Library: ", basename(lbt.libname))
println(io, "├ Interface: ", lbt.interface)
print(io, "└ F2C: ", lbt.f2c)
print(io, "├ Complex return style: ", lbt.complex_retstyle)
print(io, "├ F2C: ", lbt.f2c)
print(io, "└ CBLAS: ", lbt.cblas)
end

function Base.show(io::IO, lbt::LBTConfig)
Expand Down Expand Up @@ -210,20 +238,29 @@ end
## NOTE: Manually setting forwards is referred to as the 'footgun API'. It allows truly
## bizarre and complex setups to be created. If you run into strange errors while using
## it, the first thing you should ask yourself is whether you've set things up properly.
function lbt_set_forward(symbol_name, addr, interface, f2c = LBT_F2C_PLAIN; verbose::Bool = false)
function lbt_set_forward(symbol_name, addr, interface,
complex_retstyle = LBT_COMPLEX_RETSTYLE_NORMAL,
f2c = LBT_F2C_PLAIN; verbose::Bool = false)
return ccall(
(:lbt_set_forward, libblastrampoline),
Int32,
(Cstring, Ptr{Cvoid}, Int32, Int32, Int32),
(Cstring, Ptr{Cvoid}, Int32, Int32, Int32, Int32),
string(symbol_name),
addr,
Int32(interface),
Int32(complex_retstyle),
Int32(f2c),
verbose ? Int32(1) : Int32(0),
)
end
function lbt_set_forward(symbol_name, addr, interface::Symbol, f2c::Symbol = :plain; kwargs...)
return lbt_set_forward(symbol_name, addr, LBT_INV_INTERFACE_MAP[interface], LBT_INV_F2C_MAP[f2c]; kwargs...)
function lbt_set_forward(symbol_name, addr, interface::Symbol,
complex_retstyle::Symbol = :normal,
f2c::Symbol = :plain; kwargs...)
return lbt_set_forward(symbol_name, addr,
LBT_INV_INTERFACE_MAP[interface],
LBT_INV_COMPLEX_RETSTYLE_MAP[complex_retstyle],
LBT_INV_F2C_MAP[f2c];
kwargs...)
end

function lbt_get_forward(symbol_name, interface, f2c = LBT_F2C_PLAIN)
Expand Down
2 changes: 1 addition & 1 deletion stdlib/libblastrampoline_jll/Project.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name = "libblastrampoline_jll"
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
version = "4.0.0+0"
version = "5.0.1+0"

[deps]
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
Expand Down

0 comments on commit 766ae6c

Please sign in to comment.