Skip to content

Commit

Permalink
OpenBLAS32_jll build 0.3.9+0
Browse files Browse the repository at this point in the history
  • Loading branch information
jlbuild committed Mar 31, 2020
1 parent c232c29 commit 2dce710
Show file tree
Hide file tree
Showing 44 changed files with 2,520 additions and 0 deletions.
378 changes: 378 additions & 0 deletions Artifacts.toml

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Copyright 2020

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
10 changes: 10 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name = "OpenBLAS32_jll"
uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2"
version = "0.3.9+0"

[deps]
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[compat]
julia = "1.0"
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# OpenBLAS32_jll.jl

This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl).

## Products

The code bindings within this package are autogenerated from the following `Products` defined within the `build_tarballs.jl` file that generated this package:

```julia
products = [
LibraryProduct(["libopenblas"], :libopenblas)
]
```

## Usage example

For example purposes, we will assume that the following products were defined in the imaginary package `Example_jll`:

```julia
products = [
FileProduct("src/data.txt", :data_txt),
LibraryProduct("libdataproc", :libdataproc),
ExecutableProduct("mungify", :mungify_exe)
]
```

With such products defined, `Example_jll` would contain `data_txt`, `libdataproc` and `mungify_exe` symbols exported. For `FileProduct` variables, the exported value is a string pointing to the location of the file on-disk. For `LibraryProduct` variables, it is a string corresponding to the `SONAME` of the desired library (it will have already been `dlopen()`'ed, so typical `ccall()` usage applies), and for `ExecutableProduct` variables, the exported value is a function that can be called to set appropriate environment variables. Example:

```julia
using Example_jll

# For file products, you can access its file location directly:
data_lines = open(data_txt, "r") do io
readlines(io)
end

# For library products, you can use the exported variable name in `ccall()` invocations directly
num_chars = ccall((:count_characters, libdataproc), Cint, (Cstring, Cint), data_lines[1], length(data_lines[1]))

# For executable products, you can use the exported variable name as a function that you can call
mungify_exe() do mungify_exe_path
run(`$mungify_exe_path $num_chars`)
end
```
53 changes: 53 additions & 0 deletions src/OpenBLAS32_jll.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
module OpenBLAS32_jll

if VERSION < v"1.3.0-rc4"
# We lie a bit in the registry that JLL packages are usable on Julia 1.0-1.2.
# This is to allow packages that might want to support Julia 1.0 to get the
# benefits of a JLL package on 1.3 (requiring them to declare a dependence on
# this JLL package in their Project.toml) but engage in heroic hacks to do
# something other than actually use a JLL package on 1.0-1.2. By allowing
# this package to be installed (but not loaded) on 1.0-1.2, we enable users
# to avoid splitting their package versions into pre-1.3 and post-1.3 branches
# if they are willing to engage in the kinds of hoop-jumping they might need
# to in order to install binaries in a JLL-compatible way on 1.0-1.2. One
# example of this hoop-jumping being to express a dependency on this JLL
# package, then import it wtihin a `VERSION >= v"1.3"` conditional, and use
# the deprecated `build.jl` mechanism to download the binaries through e.g.
# `BinaryProvider.jl`. This should work well for the simplest packages, and
# require greater and greater heroics for more and more complex packages.
error("Unable to import OpenBLAS32_jll on Julia versions older than 1.3!")
end

using Pkg, Pkg.BinaryPlatforms, Pkg.Artifacts, Libdl
import Base: UUID

# We put these inter-JLL-package API values here so that they are always defined, even if there
# is no underlying wrapper held within this JLL package.
const PATH_list = String[]
const LIBPATH_list = String[]

# Load Artifacts.toml file
artifacts_toml = joinpath(@__DIR__, "..", "Artifacts.toml")

# Extract all platforms
artifacts = Pkg.Artifacts.load_artifacts_toml(artifacts_toml; pkg_uuid=UUID("656ef2d0-ae68-5445-9ca0-591084a874a2"))
platforms = [Pkg.Artifacts.unpack_platform(e, "OpenBLAS32", artifacts_toml) for e in artifacts["OpenBLAS32"]]

# Filter platforms based on what wrappers we've generated on-disk
filter!(p -> isfile(joinpath(@__DIR__, "wrappers", replace(triplet(p), "arm-" => "armv7l-") * ".jl")), platforms)

# From the available options, choose the best platform
best_platform = select_platform(Dict(p => triplet(p) for p in platforms))

# Silently fail if there's no binaries for this platform
if best_platform === nothing
@debug("Unable to load OpenBLAS32; unsupported platform $(triplet(platform_key_abi()))")
else
# Load the appropriate wrapper. Note that on older Julia versions, we still
# say "arm-linux-gnueabihf" instead of the more correct "armv7l-linux-gnueabihf",
# so we manually correct for that here:
best_platform = replace(best_platform, "arm-" => "armv7l-")
include(joinpath(@__DIR__, "wrappers", "$(best_platform).jl"))
end

end # module OpenBLAS32_jll
52 changes: 52 additions & 0 deletions src/wrappers/aarch64-linux-gnu-libgfortran3.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Autogenerated wrapper script for OpenBLAS32_jll for aarch64-linux-gnu-libgfortran3
export libopenblas

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libopenblas`
const libopenblas_splitpath = ["lib", "libopenblas.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libopenblas_path = ""

# libopenblas-specific global declaration
# This will be filled out by __init__()
libopenblas_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libopenblas = "libopenblas.so"


"""
Open all libraries
"""
function __init__()
global artifact_dir = abspath(artifact"OpenBLAS32")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# We first need to add to LIBPATH_list the libraries provided by Julia
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
global libopenblas_path = normpath(joinpath(artifact_dir, libopenblas_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libopenblas_handle = dlopen(libopenblas_path)
push!(LIBPATH_list, dirname(libopenblas_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

52 changes: 52 additions & 0 deletions src/wrappers/aarch64-linux-gnu-libgfortran4.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Autogenerated wrapper script for OpenBLAS32_jll for aarch64-linux-gnu-libgfortran4
export libopenblas

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libopenblas`
const libopenblas_splitpath = ["lib", "libopenblas.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libopenblas_path = ""

# libopenblas-specific global declaration
# This will be filled out by __init__()
libopenblas_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libopenblas = "libopenblas.so"


"""
Open all libraries
"""
function __init__()
global artifact_dir = abspath(artifact"OpenBLAS32")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# We first need to add to LIBPATH_list the libraries provided by Julia
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
global libopenblas_path = normpath(joinpath(artifact_dir, libopenblas_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libopenblas_handle = dlopen(libopenblas_path)
push!(LIBPATH_list, dirname(libopenblas_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

52 changes: 52 additions & 0 deletions src/wrappers/aarch64-linux-gnu-libgfortran5.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Autogenerated wrapper script for OpenBLAS32_jll for aarch64-linux-gnu-libgfortran5
export libopenblas

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libopenblas`
const libopenblas_splitpath = ["lib", "libopenblas.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libopenblas_path = ""

# libopenblas-specific global declaration
# This will be filled out by __init__()
libopenblas_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libopenblas = "libopenblas.so"


"""
Open all libraries
"""
function __init__()
global artifact_dir = abspath(artifact"OpenBLAS32")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# We first need to add to LIBPATH_list the libraries provided by Julia
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
global libopenblas_path = normpath(joinpath(artifact_dir, libopenblas_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libopenblas_handle = dlopen(libopenblas_path)
push!(LIBPATH_list, dirname(libopenblas_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

52 changes: 52 additions & 0 deletions src/wrappers/aarch64-linux-musl-libgfortran3.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Autogenerated wrapper script for OpenBLAS32_jll for aarch64-linux-musl-libgfortran3
export libopenblas

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libopenblas`
const libopenblas_splitpath = ["lib", "libopenblas.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libopenblas_path = ""

# libopenblas-specific global declaration
# This will be filled out by __init__()
libopenblas_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libopenblas = "libopenblas.so"


"""
Open all libraries
"""
function __init__()
global artifact_dir = abspath(artifact"OpenBLAS32")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# We first need to add to LIBPATH_list the libraries provided by Julia
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
global libopenblas_path = normpath(joinpath(artifact_dir, libopenblas_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libopenblas_handle = dlopen(libopenblas_path)
push!(LIBPATH_list, dirname(libopenblas_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

52 changes: 52 additions & 0 deletions src/wrappers/aarch64-linux-musl-libgfortran4.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Autogenerated wrapper script for OpenBLAS32_jll for aarch64-linux-musl-libgfortran4
export libopenblas

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libopenblas`
const libopenblas_splitpath = ["lib", "libopenblas.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libopenblas_path = ""

# libopenblas-specific global declaration
# This will be filled out by __init__()
libopenblas_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libopenblas = "libopenblas.so"


"""
Open all libraries
"""
function __init__()
global artifact_dir = abspath(artifact"OpenBLAS32")

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
# We first need to add to LIBPATH_list the libraries provided by Julia
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
global libopenblas_path = normpath(joinpath(artifact_dir, libopenblas_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libopenblas_handle = dlopen(libopenblas_path)
push!(LIBPATH_list, dirname(libopenblas_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

Loading

0 comments on commit 2dce710

Please sign in to comment.