Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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