Skip to content

Commit a23aade

Browse files
committed
CompilerSupportLibraries_jll build 0.3.4+0
1 parent 6e75bc7 commit a23aade

File tree

51 files changed

+1600
-4474
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1600
-4474
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
override/

LICENSE

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
The Julia source code within this repository (all files under `src/`) are
2+
released under the terms of the MIT "Expat" License, the text of which is
3+
included below. This license does not apply to the binary package wrapped by
4+
this Julia package and automatically downloaded by the Julia package manager
5+
upon installing this wrapper package. The binary package's license is shipped
6+
alongside the binary itself and can be found within the
7+
`share/licenses/CompilerSupportLibraries` directory within its prefix.
8+
9+
MIT License
10+
11+
Copyright (c) 2020
12+
13+
Permission is hereby granted, free of charge, to any person obtaining a copy
14+
of this software and associated documentation files (the "Software"), to deal
15+
in the Software without restriction, including without limitation the rights
16+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17+
copies of the Software, and to permit persons to whom the Software is
18+
furnished to do so, subject to the following conditions:
19+
20+
The above copyright notice and this permission notice shall be included in all
21+
copies or substantial portions of the Software.
22+
23+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29+
SOFTWARE.

LICENSE.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

Project.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
name = "CompilerSupportLibraries_jll"
22
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
3-
version = "0.3.3+0"
3+
version = "0.3.4+0"
44

55
[deps]
6+
JLLWrappers = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
67
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
78
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
9+
Artifacts = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
810

911
[compat]
12+
JLLWrappers = "1.1.0"
1013
julia = "1.0"

README.md

Lines changed: 16 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,27 @@
1-
# CompilerSupportLibraries_jll.jl
1+
# `CompilerSupportLibraries_jll.jl` (v0.3.4+0)
22

3-
This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl).
3+
This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl). The originating [`build_tarballs.jl`](https://github.com/JuliaPackaging/Yggdrasil/blob/a5f2d2cff3e42ea44ed44010fd8b6f0b8ff277a2/C/CompilerSupportLibraries/build_tarballs.jl) script can be found on [`Yggdrasil`](https://github.com/JuliaPackaging/Yggdrasil/), the community build tree. If you have any issue, please report it to the Yggdrasil [bug tracker](https://github.com/JuliaPackaging/Yggdrasil/issues).
44

5-
## Products
6-
7-
The code bindings within this package are autogenerated from the following `Products` defined within the `build_tarballs.jl` file that generated this package:
5+
For more details about JLL packages and how to use them, see `BinaryBuilder.jl` [documentation](https://juliapackaging.github.io/BinaryBuilder.jl/dev/jll/).
86

9-
```julia
10-
products = [
11-
LibraryProduct(["libgcc_s", "libgcc_s_sjlj", "libgcc_s_seh"], :libgcc_s),
12-
LibraryProduct(["libgfortran"], :libgfortran),
13-
LibraryProduct(["libgomp"], :libgomp),
14-
LibraryProduct(["libstdc++"], :libstdcxx)
15-
]
16-
```
7+
## Sources
178

18-
## Usage example
9+
The tarballs for `CompilerSupportLibraries_jll.jl` have been built from these sources:
1910

20-
For example purposes, we will assume that the following products were defined in the imaginary package `Example_jll`:
11+
* file: /agent/_work/1/s/C/CompilerSupportLibraries/build_tarballs.jl (SHA256 checksum: `3ff1d3c7cb1518fac21895b40501f17da07299d202f66f7126a060f979061905`)
2112

22-
```julia
23-
products = [
24-
FileProduct("src/data.txt", :data_txt),
25-
LibraryProduct("libdataproc", :libdataproc),
26-
ExecutableProduct("mungify", :mungify_exe)
27-
]
28-
```
13+
## Platforms
2914

30-
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:
15+
`CompilerSupportLibraries_jll.jl` is available for the following platforms:
3116

32-
```julia
33-
using Example_jll
17+
* `Windows x86_64 {libgfortran_version=5.0.0}` (`x86_64-w64-mingw32-libgfortran5`)
3418

35-
# For file products, you can access its file location directly:
36-
data_lines = open(data_txt, "r") do io
37-
readlines(io)
38-
end
19+
## Products
3920

40-
# For library products, you can use the exported variable name in `ccall()` invocations directly
41-
num_chars = ccall((:count_characters, libdataproc), Cint, (Cstring, Cint), data_lines[1], length(data_lines[1]))
21+
The code bindings within this package are autogenerated from the following `Products`:
4222

43-
# For executable products, you can use the exported variable name as a function that you can call
44-
mungify_exe() do mungify_exe_path
45-
run(`$mungify_exe_path $num_chars`)
46-
end
47-
```
23+
* `LibraryProduct`: `libatomic`
24+
* `LibraryProduct`: `libgcc_s`
25+
* `LibraryProduct`: `libgfortran`
26+
* `LibraryProduct`: `libgomp`
27+
* `LibraryProduct`: `libstdcxx`
Lines changed: 8 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,9 @@
1-
module CompilerSupportLibraries_jll
2-
3-
if VERSION < v"1.3.0-rc4"
4-
# We lie a bit in the registry that JLL packages are usable on Julia 1.0-1.2.
5-
# This is to allow packages that might want to support Julia 1.0 to get the
6-
# benefits of a JLL package on 1.3 (requiring them to declare a dependence on
7-
# this JLL package in their Project.toml) but engage in heroic hacks to do
8-
# something other than actually use a JLL package on 1.0-1.2. By allowing
9-
# this package to be installed (but not loaded) on 1.0-1.2, we enable users
10-
# to avoid splitting their package versions into pre-1.3 and post-1.3 branches
11-
# if they are willing to engage in the kinds of hoop-jumping they might need
12-
# to in order to install binaries in a JLL-compatible way on 1.0-1.2. One
13-
# example of this hoop-jumping being to express a dependency on this JLL
14-
# package, then import it wtihin a `VERSION >= v"1.3"` conditional, and use
15-
# the deprecated `build.jl` mechanism to download the binaries through e.g.
16-
# `BinaryProvider.jl`. This should work well for the simplest packages, and
17-
# require greater and greater heroics for more and more complex packages.
18-
error("Unable to import CompilerSupportLibraries_jll on Julia versions older than 1.3!")
19-
end
20-
21-
using Pkg, Pkg.BinaryPlatforms, Pkg.Artifacts, Libdl
22-
import Base: UUID
23-
24-
# We put these inter-JLL-package API values here so that they are always defined, even if there
25-
# is no underlying wrapper held within this JLL package.
26-
const PATH_list = String[]
27-
const LIBPATH_list = String[]
28-
29-
# Load Artifacts.toml file
30-
artifacts_toml = joinpath(@__DIR__, "..", "Artifacts.toml")
31-
32-
# Extract all platforms
33-
artifacts = Pkg.Artifacts.load_artifacts_toml(artifacts_toml; pkg_uuid=UUID("e66e0078-7015-5450-92f7-15fbd957f2ae"))
34-
platforms = [Pkg.Artifacts.unpack_platform(e, "CompilerSupportLibraries", artifacts_toml) for e in artifacts["CompilerSupportLibraries"]]
35-
36-
# Filter platforms based on what wrappers we've generated on-disk
37-
filter!(p -> isfile(joinpath(@__DIR__, "wrappers", replace(triplet(p), "arm-" => "armv7l-") * ".jl")), platforms)
38-
39-
# From the available options, choose the best platform
40-
best_platform = select_platform(Dict(p => triplet(p) for p in platforms))
41-
42-
# Silently fail if there's no binaries for this platform
43-
if best_platform === nothing
44-
@debug("Unable to load CompilerSupportLibraries; unsupported platform $(triplet(platform_key_abi()))")
45-
else
46-
# Load the appropriate wrapper. Note that on older Julia versions, we still
47-
# say "arm-linux-gnueabihf" instead of the more correct "armv7l-linux-gnueabihf",
48-
# so we manually correct for that here:
49-
best_platform = replace(best_platform, "arm-" => "armv7l-")
50-
include(joinpath(@__DIR__, "wrappers", "$(best_platform).jl"))
51-
end
52-
1+
# Use baremodule to shave off a few KB from the serialized `.ji` file
2+
baremodule CompilerSupportLibraries_jll
3+
using Base
4+
using Base: UUID
5+
import JLLWrappers
6+
7+
JLLWrappers.@generate_main_file_header("CompilerSupportLibraries")
8+
JLLWrappers.@generate_main_file("CompilerSupportLibraries", UUID("e66e0078-7015-5450-92f7-15fbd957f2ae"))
539
end # module CompilerSupportLibraries_jll
Lines changed: 31 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,36 @@
11
# Autogenerated wrapper script for CompilerSupportLibraries_jll for aarch64-linux-gnu-libgfortran3
22
export libgcc_s, libgfortran, libgomp, libstdcxx
33

4-
## Global variables
5-
PATH = ""
6-
LIBPATH = ""
7-
LIBPATH_env = "LD_LIBRARY_PATH"
8-
9-
# Relative path to `libgcc_s`
10-
const libgcc_s_splitpath = ["lib", "libgcc_s.so.1"]
11-
12-
# This will be filled out by __init__() for all products, as it must be done at runtime
13-
libgcc_s_path = ""
14-
15-
# libgcc_s-specific global declaration
16-
# This will be filled out by __init__()
17-
libgcc_s_handle = C_NULL
18-
19-
# This must be `const` so that we can use it with `ccall()`
20-
const libgcc_s = "libgcc_s.so.1"
21-
22-
23-
# Relative path to `libgfortran`
24-
const libgfortran_splitpath = ["lib", "libgfortran.so.3"]
25-
26-
# This will be filled out by __init__() for all products, as it must be done at runtime
27-
libgfortran_path = ""
28-
29-
# libgfortran-specific global declaration
30-
# This will be filled out by __init__()
31-
libgfortran_handle = C_NULL
32-
33-
# This must be `const` so that we can use it with `ccall()`
34-
const libgfortran = "libgfortran.so.3"
35-
36-
37-
# Relative path to `libgomp`
38-
const libgomp_splitpath = ["lib", "libgomp.so.1"]
39-
40-
# This will be filled out by __init__() for all products, as it must be done at runtime
41-
libgomp_path = ""
42-
43-
# libgomp-specific global declaration
44-
# This will be filled out by __init__()
45-
libgomp_handle = C_NULL
46-
47-
# This must be `const` so that we can use it with `ccall()`
48-
const libgomp = "libgomp.so.1"
49-
50-
51-
# Relative path to `libstdcxx`
52-
const libstdcxx_splitpath = ["lib", "libstdc++.so.6"]
53-
54-
# This will be filled out by __init__() for all products, as it must be done at runtime
55-
libstdcxx_path = ""
56-
57-
# libstdcxx-specific global declaration
58-
# This will be filled out by __init__()
59-
libstdcxx_handle = C_NULL
60-
61-
# This must be `const` so that we can use it with `ccall()`
62-
const libstdcxx = "libstdc++.so.6"
63-
64-
65-
"""
66-
Open all libraries
67-
"""
4+
JLLWrappers.@generate_wrapper_header("CompilerSupportLibraries")
5+
JLLWrappers.@declare_library_product(libgcc_s, "libgcc_s.so.1")
6+
JLLWrappers.@declare_library_product(libgfortran, "libgfortran.so.3")
7+
JLLWrappers.@declare_library_product(libgomp, "libgomp.so.1")
8+
JLLWrappers.@declare_library_product(libstdcxx, "libstdc++.so.6")
689
function __init__()
69-
global artifact_dir = abspath(artifact"CompilerSupportLibraries")
70-
71-
# Initialize PATH and LIBPATH environment variable listings
72-
global PATH_list, LIBPATH_list
73-
# We first need to add to LIBPATH_list the libraries provided by Julia
74-
append!(LIBPATH_list, [joinpath(Sys.BINDIR, Base.LIBDIR, "julia"), joinpath(Sys.BINDIR, Base.LIBDIR)])
75-
global libgcc_s_path = normpath(joinpath(artifact_dir, libgcc_s_splitpath...))
76-
77-
# Manually `dlopen()` this right now so that future invocations
78-
# of `ccall` with its `SONAME` will find this path immediately.
79-
global libgcc_s_handle = dlopen(libgcc_s_path)
80-
push!(LIBPATH_list, dirname(libgcc_s_path))
81-
82-
global libgfortran_path = normpath(joinpath(artifact_dir, libgfortran_splitpath...))
83-
84-
# Manually `dlopen()` this right now so that future invocations
85-
# of `ccall` with its `SONAME` will find this path immediately.
86-
global libgfortran_handle = dlopen(libgfortran_path)
87-
push!(LIBPATH_list, dirname(libgfortran_path))
88-
89-
global libgomp_path = normpath(joinpath(artifact_dir, libgomp_splitpath...))
90-
91-
# Manually `dlopen()` this right now so that future invocations
92-
# of `ccall` with its `SONAME` will find this path immediately.
93-
global libgomp_handle = dlopen(libgomp_path)
94-
push!(LIBPATH_list, dirname(libgomp_path))
95-
96-
global libstdcxx_path = normpath(joinpath(artifact_dir, libstdcxx_splitpath...))
97-
98-
# Manually `dlopen()` this right now so that future invocations
99-
# of `ccall` with its `SONAME` will find this path immediately.
100-
global libstdcxx_handle = dlopen(libstdcxx_path)
101-
push!(LIBPATH_list, dirname(libstdcxx_path))
102-
103-
# Filter out duplicate and empty entries in our PATH and LIBPATH entries
104-
filter!(!isempty, unique!(PATH_list))
105-
filter!(!isempty, unique!(LIBPATH_list))
106-
global PATH = join(PATH_list, ':')
107-
global LIBPATH = join(LIBPATH_list, ':')
108-
109-
# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
110-
# that don't honor our "already opened" trick)
111-
#for lp in LIBPATH_list
112-
# push!(DL_LOAD_PATH, lp)
113-
#end
10+
JLLWrappers.@generate_init_header()
11+
JLLWrappers.@init_library_product(
12+
libgcc_s,
13+
"lib/libgcc_s.so.1",
14+
RTLD_LAZY | RTLD_DEEPBIND,
15+
)
16+
17+
JLLWrappers.@init_library_product(
18+
libgfortran,
19+
"lib/libgfortran.so.3",
20+
RTLD_LAZY | RTLD_DEEPBIND,
21+
)
22+
23+
JLLWrappers.@init_library_product(
24+
libgomp,
25+
"lib/libgomp.so.1",
26+
RTLD_LAZY | RTLD_DEEPBIND,
27+
)
28+
29+
JLLWrappers.@init_library_product(
30+
libstdcxx,
31+
"lib/libstdc++.so.6",
32+
RTLD_LAZY | RTLD_DEEPBIND,
33+
)
34+
35+
JLLWrappers.@generate_init_footer()
11436
end # __init__()
115-

0 commit comments

Comments
 (0)