Compare commits

86 Commits

Author SHA256 Message Date
Soc Virnyl Estela
4dcb1676aa Accepting request 1238356 from home:StevenK:branches:science
- Drop unneeeded BuildRequires on python3-recommonmark.

OBS-URL: https://build.opensuse.org/request/show/1238356
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=231
2025-01-17 23:09:45 +00:00
Soc Virnyl Estela
92e1efafd8 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=230 2024-10-04 23:55:49 +00:00
Soc Virnyl Estela
8a73827f4d OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=229 2024-10-04 12:50:11 +00:00
Soc Virnyl Estela
eada458b47 - Remove deps-makefile.patch
- Do not force gcc versions
- Revert to use system libcurl-devel
- Use clang over gcc

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=228
2024-10-04 12:46:45 +00:00
Soc Virnyl Estela
aa0db38925 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=227 2024-10-03 06:15:21 +00:00
Soc Virnyl Estela
4de51524dc OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=226 2024-10-02 14:22:56 +00:00
Soc Virnyl Estela
6e1e5d09eb OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=225 2024-10-02 01:46:12 +00:00
Soc Virnyl Estela
f691daedec OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=224 2024-10-01 08:46:18 +00:00
Soc Virnyl Estela
914dea4d24 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=223 2024-10-01 07:53:49 +00:00
Soc Virnyl Estela
e6aa9798cb OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=222 2024-10-01 07:52:39 +00:00
Soc Virnyl Estela
2f82b637f9 - Use bundled libcurl. The recent version breaks Julia.
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=221
2024-10-01 06:54:00 +00:00
Soc Virnyl Estela
0396877830 - Disable INTEL_JITEVENTS. Accidentally enabled during testing.
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=220
2024-09-30 01:41:46 +00:00
Soc Virnyl Estela
2526fd37aa - Remove julia-libunwind-1.9.patch
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=218
2024-09-27 13:22:04 +00:00
Soc Virnyl Estela
b40a93bb55 Accepting request 1204122 from home:uncomfyhalomacro:branches:science
- Use bundled libunwind
- Add the following gmp patches
  * ./gmp-6.2.1-arm64-invert_limb.patch
  * ./apply-gmp-arm64-invert_limb.patch
- Add pp64le variants of the bundled deps
  * CompilerSupportLibraries.v1.1.1+0.powerpc64le-linux-gnu-libgfortran5.tar.gz
  * GMP.v6.2.1+6.powerpc64le-linux-gnu-cxx11.tar.gz
  * LLD.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
  * LibCURL.v8.4.0+0.powerpc64le-linux-gnu.tar.gz
  * LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz
  * LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz
  * LibUV.v2.0.1+14.powerpc64le-linux-gnu.tar.gz
  * LibUnwind.v1.5.0+5.powerpc64le-linux-gnu.tar.gz
  * MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz
  * MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz
  * OpenBLAS.v0.3.23+4.powerpc64le-linux-gnu-libgfortran5.tar.gz
  * OpenLibm.v0.8.1+2.powerpc64le-linux-gnu.tar.gz
  * PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz
  * SuiteSparse.v7.2.1+1.powerpc64le-linux-gnu.tar.gz
  * Zlib.v1.2.13+1.powerpc64le-linux-gnu.tar.gz
  * dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz
  * julia.spec
  * libLLVM.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
  * libblastrampoline.v5.11.0+0.powerpc64le-linux-gnu.tar.gz
  * nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz
  * p7zip.v17.4.0+2.powerpc64le-linux-gnu.tar.gz
- Add the aarch64 variants of the bundled deps
  * CompilerSupportLibraries.v1.1.1+0.aarch64-linux-gnu-libgfortran5.tar.gz
  * GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz
  * LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
  * LibCURL.v8.4.0+0.aarch64-linux-gnu.tar.gz
  * LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz
  * LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz
  * LibUV.v2.0.1+14.aarch64-linux-gnu.tar.gz
  * LibUnwind.v1.5.0+5.aarch64-linux-gnu.tar.gz
  * MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz
  * MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz
  * OpenBLAS.v0.3.23+4.aarch64-linux-gnu-libgfortran5.tar.gz
  * OpenLibm.v0.8.1+2.aarch64-linux-gnu.tar.gz
  * PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz
  * SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
  * Zlib.v1.2.13+1.aarch64-linux-gnu.tar.gz
  * dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz
  * julia.spec
  * libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
  * libblastrampoline.v5.11.0+0.aarch64-linux-gnu.tar.gz
  * nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz
  * p7zip.v17.4.0+2.aarch64-linux-gnu.tar.gz
- Add ./libblastrampoline.v5.11.0+0.x86_64-linux-gnu.tar.gz
- Add ./deps-makefile.patch
- The full.tar.gz tarball is not a full.tar.gz tarball so we have to
  manually add the sources now.
  * add CompilerSupportLibraries.v1.1.1+0.x86_64-linux-gnu-libgfortran5.tar.gz
  * add dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz
  * add GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz
  * add LibCURL.v8.4.0+0.x86_64-linux-gnu.tar.gz
  * add LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz
  * add libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
  * add LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz
  * add LibUnwind.v1.5.0+5.x86_64-linux-gnu.tar.gz
  * add LibUV-v2.0.1+14.x86_64-linux-gnu.tar.gz
  * add LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
  * add MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz
  * add MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz
  * add nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz
  * add OpenBLAS.v0.3.23+4.x86_64-linux-gnu-libgfortran5.tar.gz
  * add OpenLibm.v0.8.1+2.x86_64-linux-gnu.tar.gz
  * add p7zip.v17.4.0+2.x86_64-linux-gnu.tar.gz
  * add PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz
  * add SuiteSparse.v7.2.1+1.x86_64-linux-gnu.tar.gz
  * add Zlib.v1.2.13+1.x86_64-linux-gnu.tar.gz
- Add -Wno-implicit-function-declaration for CFLAGS and CXXFLAGS
  * this is an issue building with source-vendored GMP.
  * see https://discourse.julialang.org/t/building-julia-for-nix/115304/6.
    it might be a nix build issue but it affects all distros tbh.
- Adopt buildkite env from Julia's CI. See utilities/build_envs.sh.
- Update CFLAGS and CXXFLAGS to %optflags macro
- Reenable other architectures for testing
- BUG-GCC-LLVM-UPSTREAM: Add -Wno-error=incompatible-pointer-types for aarch64.
  * already fixed but still affecting the vendored LLVM build. might be an openSUSE
    GCC issue (need to confirm but let's just by-pass the warning for now).
  * reference issue -> https://github.com/JuliaLang/julia/issues/45400
- Update julia.specfile
  * remove allow_libssp_libatomic_and_libgomp_to_fail_as_they_are_not_available_on_all_systems.patch
- Update to version 1.10.5:
  * bump Pkg to latest 1.10
  * 🤖 [backports-release-1.10] Bump the Pkg stdlib from 45521a6e8 to a4f26cff6
  * 🤖 [backports-release-1.10] Bump the Pkg stdlib from 9cb6d35f8 to 45521a6e8
  * `stale_cachefile`: handle if the expected cache file is missing
  * bump Pkg to latest 1.10
  * Fix tr for block SymTridiagonal
  * [libblastrampoline] Bump to v5.11.0
  * Profile: Fix stdlib paths
  * Restrict argument to `isleapyear(::Integer)`
  * Add `lbt_forwarded_funcs()` to debug LBT forwarding issues
  * Fix a bug in `stack`'s DimensionMismatch error message
  * [docs] change docstring to match code
  * AllocOpt: Fix stack lowering where alloca continas boxed and unboxed data
  * [build] Some improvements to the LLVM build system
  * 🤖 [backports-release-1.10] Bump the Pkg stdlib from bf83c387b to ff18647d8
  * Add openlibm to sysimg link line on windows
  * Remove the WarnMissedTransformations pass from the 1.10 pipeline
  * Do not hide libssp.dll.a (Windows import library) in private library dir
  * fixup some casts in uv code, extraced from commit e5496e0
  * Fix calling LLVM_SIZE on windows
  * relax equality in trace test
  * Remove reference to memory attribute in llvm pass
  * Disable typed pointer tests for alloc-opt-pass since the base file is now using opaque pointers
  * bump Pkg to latest v1.10
  * Bump libblastrampoline to v5.10.1
  * add missing compat entry to edit
  * LinearAlgebra: LazyString in error messages for Diagonal/Bidiagonal
  * Use triple quotes in TOML.print when string contains newline
  * Fix assertion/crash when optimizing function with dead basic block
  * more precise aliasing checks for SubArray
  * document mutable struct const fields
  * correction to compat notice for a[begin]
  * compat notice for a[begin] indexing
  * Compat for `Base.@nospecializeinfer`
  * Update the aarch64 devdocs to reflect the current state of its support
  * Fix generic triangular solves with empty matrices
  * Profile: Improve module docstring
  * Remove boxing in pinv
  * `LazyString` in `LinearAlgebra.checksquare` error message
  * LinearAlgebra: use `≈` instead of `==` for `tr` tests in symmetric.jl
  * 🤖 [backports-release-1.10] Bump the Pkg stdlib from f487626b0 to 6d73ac1fc
  * [release-1.10] fix a race condition in jl_gc_realloc_string
  * Do not add type tag size to the `alloc_typed` lowering for GC allocations
  * add sticky task warning to `@task` and `schedule`
  * [LinearAlgebra] Improve resilience to unknown libblastrampoline flags
  * make: use `readelf` for LLVM symbol version detection
  * LazyString in reinterpretarray error messages
  * make: Fix `sed` command for LLVM libraries with no symbol versioning
  * Add boundscheck in bindingkey_eq to avoid OOB access due to data race
  * ensure we set the right value to gc_first_tid
  * Aggressive constprop in trevc! to stabilize triangular eigvec
  * Fix trampoline assembly for build on clang 18 on apple silicon
  * Allow libquadmath to also fail as it is not available on all systems

OBS-URL: https://build.opensuse.org/request/show/1204122
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=217
2024-09-27 10:40:00 +00:00
Soc Virnyl Estela
413e837963 - Fix build. typo caused a misconfigure:
JULIA_CPU_TARGETS -> JULIA_CPU_TARGET

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=215
2024-06-07 17:18:16 +00:00
Soc Virnyl Estela
a45ad2fc74 Accepting request 1179111 from home:uncomfyhalomacro:branches:science
- Update ./disable-doc-gen-in-makefile.patch. Upstream has patched to allow offline
  builds but added commands in the `doc/Makefile` that needs network.
- Update to version 1.10.4:
  * correctly track freed bytes in array_to_string
  * Add inventory writing via DocumenterInventoryWritingBackport
  * Overload Base.literal_pow for AbstractQ
  * LinearAlgebra: Correct zero element in _generic_matvecmul! for block adj/trans
  * set MAX_OS_WRITE on unix
  * fix typo in gc_mark_memory8 when chunking a large array
  * typeintersect: fix another stack overflow caused by circular constraints
  * Fix an off-by-one error in interpreter's do_invoke
  * Make TestLogger thread-safe (introduce a lock)
  * Add a missing doc
  * typeintersect: conservative typevar subtitution during `finish_unionall
  * typeintersect: followup cleanup for the nothrow path of type instantiation
  * merge backports for 1.10.4

OBS-URL: https://build.opensuse.org/request/show/1179111
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=214
2024-06-07 00:04:20 +00:00
Soc Virnyl Estela
d8b0dadc0e - Update description
* Julia now works as it follows closely with build sources with some exceptions.
  * Recommend to use juliaup.
  * Remove experimental. This works quite well now even with LinearAlgebra and
    Sundials.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=213
2024-06-04 06:44:59 +00:00
Soc Virnyl Estela
ee3f287ff2 Accepting request 1177652 from home:uncomfyhalomacro:branches:science
- Update JULIA_CPU_TARGETS
- Reenable aarch64 builds with patch
  ./allow_libssp_libatomic_and_libgomp_to_fail_as_they_are_not_available_on_all_systems.patch

OBS-URL: https://build.opensuse.org/request/show/1177652
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=211
2024-05-30 01:07:42 +00:00
Soc Virnyl Estela
ecc110fc42 - Cleanup
* remove libmbedcrypto as mbedtls is bundled

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=209
2024-05-22 00:20:12 +00:00
Soc Virnyl Estela
22d2552e66 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=207 2024-05-21 04:57:57 +00:00
Soc Virnyl Estela
09c1ff014e OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=206 2024-05-20 16:18:59 +00:00
Soc Virnyl Estela
a47067481e - libjulia-compat1_10 provides libjulia1_10. added rpmlint filter
to workaround rpmlint error on ldconfig_scriptlet

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=205
2024-05-20 12:14:09 +00:00
Soc Virnyl Estela
7bdaa0ddfd OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=204 2024-05-20 11:58:38 +00:00
Soc Virnyl Estela
d8d3003d3b - Update rpmlint.
* bad-cert.pem is a test file in LibGit2_jll.
- Update specfile.
  * cleanup symlinks. these files should just point starting from buildroot

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=203
2024-05-20 05:33:10 +00:00
Soc Virnyl Estela
c76c54a2be OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=202 2024-05-20 01:28:26 +00:00
Soc Virnyl Estela
f5387b0639 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=201 2024-05-19 15:26:28 +00:00
Soc Virnyl Estela
5133d79ea3 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=200 2024-05-19 15:11:45 +00:00
Soc Virnyl Estela
6bc8987180 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=199 2024-05-19 14:08:35 +00:00
Soc Virnyl Estela
d9d7536b4e - The location of libgcc_s is different between leap and tumbleweed.
- Prevent debug-info generation touching precompiled sysimages and caches which will
  invalidate checksum generation

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=198
2024-05-19 10:19:11 +00:00
Soc Virnyl Estela
22eb6ccfb2 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=197 2024-05-19 07:57:54 +00:00
Soc Virnyl Estela
10340af720 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=196 2024-05-19 04:21:58 +00:00
Soc Virnyl Estela
c8547add34 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=195 2024-05-19 00:27:56 +00:00
Soc Virnyl Estela
2c70633a24 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=194 2024-05-18 15:30:47 +00:00
Soc Virnyl Estela
e9ffa9a3f5 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=193 2024-05-18 12:12:05 +00:00
Soc Virnyl Estela
05f73e3e49 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=192 2024-05-18 12:11:26 +00:00
Soc Virnyl Estela
90f849051c OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=191 2024-05-18 11:51:30 +00:00
Soc Virnyl Estela
c2afc4e43f - Update rpmlintrc to ignore some warnings
- Fix dangling symlinks errors

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=190
2024-05-18 11:34:38 +00:00
Soc Virnyl Estela
cd38daa1e0 fix priv libs regex
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=189
2024-05-18 08:25:14 +00:00
Soc Virnyl Estela
d0232c68ac OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=188 2024-05-18 03:01:12 +00:00
Soc Virnyl Estela
c58fe8db7f - Inconsistencies on where sbinaries are located in openSUSE Leap and Tumbleweed
has caused leap rpm generation to fail after all the builds done successfully.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=187
2024-05-18 00:33:48 +00:00
Soc Virnyl Estela
93388887ec OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=186 2024-05-17 13:36:22 +00:00
Soc Virnyl Estela
24023b3b6e OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=185 2024-05-17 08:55:43 +00:00
Soc Virnyl Estela
1a5a6ef0b1 - Julia on leap has trouble looking for libgfortran5 so symlinking it to fix it
- Format specfile

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=184
2024-05-17 08:22:56 +00:00
Soc Virnyl Estela
6ca3168b62 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=183 2024-05-17 01:02:25 +00:00
Soc Virnyl Estela
85bb11b0e5 - Fix specfile
* p7zip for tumbleweed
  * p7zip-full for leap

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=182
2024-05-17 00:18:35 +00:00
Soc Virnyl Estela
c75a868f1f - More cleanup
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=181
2024-05-16 15:18:42 +00:00
Soc Virnyl Estela
08cf81634d - Also include OPENBLAS_TARGET_ARCH=NEHALEM in %{__julia_opts} for system not tumbleweed
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=180
2024-05-15 12:37:47 +00:00
Soc Virnyl Estela
d8d78ceb7e - More specfile cleanup
* Move over some environmental variables into the %{__julia_opts} global rpm var
  * Adjust to support if system is not Tumbleweed. openblas not building because libpthread troubles

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=179
2024-05-15 12:11:57 +00:00
Soc Virnyl Estela
6db6c55ba4 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=178 2024-05-15 11:40:22 +00:00
Soc Virnyl Estela
7229dd077b - Fix ./julia-libunwind-1.9.patch.
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=177
2024-05-15 11:35:59 +00:00
Soc Virnyl Estela
46a381163a - Cleanup specfile
* Use autosetup
  * Remove patches that are not needed anymore
    - llvm-link-shared.patch
    - llvm-set-of-custom-patches.patch
    - new-pass-manager.patch
    - support-float16-depending-on-llvm-and-platform.patch
    - use-newpm-asan.patch
    - fix-dependencies-checksums.patch

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=176
2024-05-15 10:25:56 +00:00
Soc Virnyl Estela
808176258d Accepting request 1173660 from home:uncomfyhalomacro:branches:science
- Update to version 1.10.3:
  * Fix outdated usage of scrubbing for log test failures
  * [REPL] Fix typo in using/import completion
  * Avoid compiler warning about redefining jl_globalref_t
  * yet more atomics & cache-line fixes on work-stealing queue 
  * build: remove extra .a file
  * Bump CSL to 1.1.1 to fix libgomp bug
  * codegen: change tbaa of ptr_phi to tbaa_value
  * Default to the medium code model in x86 linux
  * Remove some duplicates from emitted compilation traces for Julia 1.10
  * Add version string to sysimg triple
  * Add missing GC_POP() in emit_cfunction
  * typeintersect: fix UnionAll unaliasing bug caused by innervars
  * Apply backported changes
    - GC typo fix
    - Add inventory writing via DocumenterInventoryWritingBackport
- Add mpfr-looking-for-gmp-fix.patch
- Cleanup specfile
- Limit to x86_64(-v3) architectures. aarch64 has libquadmath disabled
- Tests are currently broken. Idk how upstream was able to have all their checks green despite
  I using the some bundled dependencies. Other issues are because of hardcoded libraries in
  the jll packages even though their versions are non-impactful to Julia.
- Nghttp, Mbedtls, PCRE, LibGit2, LibSSH, gmp, mpfr, and DSFMT are now using the bundled dependencies.
  * now added to the globally defined _privatelibs
  * ./julia-hardcoded-libs.patch is now updated.
  * the only dependencies that do not require much intervention is libblastrampoline and openlibm

OBS-URL: https://build.opensuse.org/request/show/1173660
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=175
2024-05-15 00:18:59 +00:00
Soc Virnyl Estela
b5e0c59cc3 Accepting request 1170084 from home:uncomfyhalomacro:branches:science
- Update to version 1.10.2:
  * JuliaSyntax.jl is now used as the default parser, providing better diagnostics and faster
    parsing. Set environment variable `JULIA_USE_FLISP_PARSER` to `1` to switch back to the old
    parser if necessary (and if you find this necessary, please file an issue).
  * `⥺` (U+297A, `\leftarrowsubset`) and `⥷` (U+2977, `\leftarrowless`) may now be used as
    binary operators with arrow precedence.
  * When a task forks a child, the parent task's task-local RNG (random number
    generator) is no longer affected. The seeding of child based on the parent
    task also takes a more disciplined approach to collision resistance, using
    a design based on the SplitMix and DotMix splittable RNG schemes.
  * A new more-specific rule for methods resolves ambiguities containing Union{} in favor of
    the method defined explicitly to handle the Union{} argument. This makes it possible to
    define methods to explicitly handle Union{} without the ambiguities that commonly would
    result previously. This also lets the runtime optimize certain method lookups in a way
    that significantly improves load and inference times for heavily overloaded methods that
    dispatch on Types (such as traits and constructors).
  * The "h bar" `ℏ` (`\hslash` U+210F) character is now treated as equivalent to `ħ` (`\hbar` U+0127).
  * The `@simd` macro now has more limited and clearer semantics: it only enables reordering and contraction
    of floating-point operations, instead of turning on all "fastmath" optimizations.
    If you observe performance regressions due to this change, you can
    recover previous behavior with `@fastmath @simd`, if you are OK with
    all the optimizations enabled by the `@fastmath` macro.
  * When a method with keyword arguments is displayed in the stack trace view, the textual
    representation of the keyword arguments' type is simplified using the new
    `@Kwargs{key1::Type1, ...}` macro syntax.
  * The mark phase of the garbage collector is now multi-threaded.
  * [JITLink](https://llvm.org/docs/JITLink.html) is enabled by default on
    Linux aarch64 when Julia is linked to LLVM 15 or later versions.
    This should resolve many segmentation faults previously observed on this
    platform.
  * The precompilation process now uses pidfile locks and orchestrates
    multiple julia processes to only have one process
    spend effort precompiling while the others wait. Previously all would
    do the work and race to overwrite the cache files.
  * New option `--gcthreads` to set how many threads will be used by the
  garbage collector.
    The default is `N/2` where `N` is the number of worker threads
    (`--threads`) used by Julia.
  * SparseArrays and SuiteSparse are no longer included in the default system
    image, so the core language no longer contains GPL libraries. However,
    these libraries are still included alongside the language in the standard
    binary distribution.
  * `tanpi` is now defined. It computes tan(π*x) more accurately than
    `tan(pi*x)`.
  * `fourthroot(x)` is now defined in `Base.Math` and can be used to compute
    the fourth root of `x`.  It can also be accessed using the unicode
    character `∜`, which can be typed by `\fourthroot<tab>`.
  * `Libc.memmove`, `Libc.memset`, and `Libc.memcpy` are now defined, whose
  functionality matches that of their respective C calls.
  * `Base.isprecompiled(pkg::PkgId)` has been added, to identify whether a
    package has already been precompiled.
  * `binomial(x, k)` now supports non-integer `x`.
  * A `CartesianIndex` is now treated as a "scalar" for broadcasting.
  * `printstyled` now supports italic output.
  * `parent` and `parentindices` support `SubString`s.
  * `replace(string, pattern...)` now supports an optional `IO` argument to
     write the output to a stream rather than returning a string.
  * `startswith` now supports seekable `IO` streams.
  * The `initialized=true` keyword assignment for `sortperm!` and
    `partialsortperm!` is now a no-op. It previously exposed unsafe behavior.
  * Printing integral `Rational`s will skip the denominator in `Rational`-typed
    IO context (e.g. in arrays).
  * `Pkg.precompile` now accepts `timing` as a keyword argument
    which displays per package timing information for precompilation
  (e.g. `Pkg.precompile(timing=true)`).
  * `AbstractQ` no longer subtypes `AbstractMatrix`. Moreover,
    `adjoint(Q::AbstractQ)` no longer wraps `Q` in an `Adjoint` type,
    but instead in an `AdjointQ`, that itself subtypes `AbstractQ`. This
    change accounts for the fact that typically `AbstractQ` instances
    behave like function-based, matrix-backed linear operators, and
    hence don't allow for efficient indexing. Also, many `AbstractQ`
    types can act on vectors/matrices of different size, acting like a
    matrix with context-dependent size. With this change, `AbstractQ`
    has a well-defined API that is described in detail in the [Julia
    documentation](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/#man-linalg-abstractq).
  * Adjoints and transposes of `Factorization` objects are no longer wrapped
    in `Adjoint` and `Transpose` wrappers, respectively. Instead, they are
    wrapped in `AdjointFactorization` and `TranposeFactorization` types,
    which themselves subtype `Factorization`.
  * New functions `hermitianpart` and `hermitianpart!` for extracting the
    Hermitian (real symmetric) part of a matrix.
  * The `norm` of the adjoint or transpose of an `AbstractMatrix` now returns
    the norm of the parent matrix by default, matching the current behaviour
    for `AbstractVector`s.
  * `eigen(A, B)` and `eigvals(A, B)`, where one of `A` or `B` is symmetric
    or Hermitian, are now fully supported.
  * `eigvals/eigen(A, cholesky(B))` now computes the generalized eigenvalues
    (`eigen`: and eigenvectors) of `A` and `B` via Cholesky decomposition
    for positive definite `B`. Note: The second argument is the output of
    `cholesky`.
  * Format specifiers now support dynamic width and precision, e.g. `%*s`
    and `%*.*g`.
  * When stack traces are printed, the printed depth of types in function
  signatures will be limited
    to avoid overly verbose output.
  * The `@test_broken` macro (or `@test` with `broken=true`) now complains
    if the test expression returns a non-boolean value in the same way as
    a non-broken test.
  * When a call to `@test` fails or errors inside a function, a larger
    stacktrace is now printed such that the location of the  test within a
    `@testset` can be retrieved.
  * `code_native` and `@code_native` now default to intel syntax instead
    of AT&T.
  * `@time_imports` now shows the timing of any module `__init__()`s that
    are run.
  * The `@pure` macro is now deprecated. Use `Base.@assume_effects :foldable` instead ([#48682]).
- Set Cmake version requirement to be at least 3.22
- Accommodate renaming dependencies in specfile.
- Disable jldownload by just running true
- Add fix-dependencies-checksums.patch
  * Fix checksum checks for suitesparse aarch64. Sources are fetched from the same source.
  * Fix checksum checks for libLLVM_jll
  * It's checking for the checksums and it is also trying to fetch them from the internet 
    and idk what's the point of having the full julia tarball.
- Fix build
  * use bundled suitesparse. comment out system suitesparse build requirement
  * comment out openblas development dependencies. use bundled openblas.
  * comment out lapack development dependencies. use bundled lapack.
  * move openblas build away from the actual make build.
    this ensures that it's installed properly because doing otherwise will
    skip the install of the dependencies. weird but it works.
- Update specfile for bundled LLVM
- Add missing build requirements for bundled llvm 15
- Fix aarch64 build. it needs to download a source that can just be copied which is
  SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz

OBS-URL: https://build.opensuse.org/request/show/1170084
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=174
2024-04-24 23:00:42 +00:00
Soc Virnyl Estela
e0f34ca192 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=173 2024-02-15 15:50:32 +00:00
Soc Virnyl Estela
2d64c94fd7 Accepting request 1146578 from home:uncomfyhalomacro:branches:science
- Use python3 instead of python. Python 2.x is EOL-ed.

OBS-URL: https://build.opensuse.org/request/show/1146578
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=172
2024-02-14 13:40:17 +00:00
Soc Virnyl Estela
77964849fa - Set suitesparse requirement to 7.2.1 and libcholmod to 5.x.x
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=171
2023-12-30 04:17:31 +00:00
Soc Virnyl Estela
bc9d7d6db3 - Add Obsoletes to obsolete older versions for julia and its subpackages.
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=170
2023-12-28 13:02:57 +00:00
Soc Virnyl Estela
74414cc069 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=169 2023-12-28 10:38:10 +00:00
Soc Virnyl Estela
2103d852bf Accepting request 1135451 from home:uncomfyhalomacro:branches:science
- Enable only tier 1 architectures
- Add disable-doc-gen-in-makefile.patch
- Add disable-download-of-unicode-for-doc-gen.patch
- Add UnicodeData.txt
- Add julia-remove-libcholmod_cuda.patch
- Add julia.keyring
- Add julia-1.10.0-full.tar.gz.asc
- Update julia-hardcoded-libs.patch
- Update specfile and enable v3 CPU optimizations on x86_64 architecture
- Update to version 1.10.0:
* New language features
  - JuliaSyntax.jl is now used as the default parser, providing better diagnostics and faster
    parsing. Set environment variable `JULIA_USE_FLISP_PARSER` to `1` to switch back to the old
    parser if necessary (and if you find this necessary, please file an issue).
  - `⥺` (U+297A, `\leftarrowsubset`) and `⥷` (U+2977, `\leftarrowless`) may now be used as
  binary operators with arrow precedence.
* Language changes
  - When a task forks a child, the parent task's task-local RNG (random number generator) is no longer affected. The 
    seeding of child based on the parent task also takes a more disciplined approach to collision resistance, using a 
    design based on the SplitMix and DotMix splittable RNG schemes.
  - A new more-specific rule for methods resolves ambiguities containing Union{} in favor of
    the method defined explicitly to handle the Union{} argument. This makes it possible to
    define methods to explicitly handle Union{} without the ambiguities that commonly would
    result previously. This also lets the runtime optimize certain method lookups in a way
    that significantly improves load and inference times for heavily overloaded methods that
    dispatch on Types (such as traits and constructors).
  - The "h bar" `ℏ` (`\hslash` U+210F) character is now treated as equivalent to `ħ` (`\hbar` U+0127).
  - The `@simd` macro now has more limited and clearer semantics: it only enables reordering and contraction
    of floating-point operations, instead of turning on all "fastmath" optimizations.
    If you observe performance regressions due to this change, you can recover previous behavior 
    with `@fastmath @simd`,
    if you are OK with all the optimizations enabled by the `@fastmath` macro.
  - When a method with keyword arguments is displayed in the stack trace view, the textual
    representation of the keyword arguments' type is simplified using the new
    `@Kwargs{key1::Type1, ...}` macro syntax.
* Compiler/Runtime improvements
  - The mark phase of the garbage collector is now multi-threaded.
  - [JITLink](https://llvm.org/docs/JITLink.html) is enabled by default on Linux aarch64 when Julia 
    is linked to LLVM 15 or later versions.
    This should resolve many segmentation faults previously observed on this platform.
  - The precompilation process now uses pidfile locks and orchestrates multiple julia processes to only have one proces
    spend effort precompiling while the others wait. Previously all would do the work and race to overwrite the cache 
    files.
* Command-line option changes
  - New option `--gcthreads` to set how many threads will be used by the garbage collector.
    The default is `N/2` where `N` is the number of worker threads (`--threads`) used by Julia.
* Build system changes
  - SparseArrays and SuiteSparse are no longer included in the default system image, so the core
    language no longer contains GPL libraries. However, these libraries are still included
    alongside the language in the standard binary distribution
* New library functions
  - `tanpi` is now defined. It computes tan(π*x) more accurately than `tan(pi*x)`.
  - `fourthroot(x)` is now defined in `Base.Math` and can be used to compute the fourth root of `x`.
   It can also be accessed using the unicode character `∜`, which can be typed by `\fourthroot<tab>`.
  - `Libc.memmove`, `Libc.memset`, and `Libc.memcpy` are now defined, whose functionality matches that of their respective C calls.
  - `Base.isprecompiled(pkg::PkgId)` has been added, to identify whether a package has already been precompiled.
* New library features
  - `binomial(x, k)` now supports non-integer `x`.
  - A `CartesianIndex` is now treated as a "scalar" for broadcasting.
  - `printstyled` now supports italic output.
  - `parent` and `parentindices` support `SubString`s.
  - `replace(string, pattern...)` now supports an optional `IO` argument to
     write the output to a stream rather than returning a string.
  - `startswith` now supports seekable `IO` streams.
* Standard library changes
  - The `initialized=true` keyword assignment for `sortperm!` and `partialsortperm!`
    is now a no-op. It previously exposed unsafe behavior.
  - Printing integral `Rational`s will skip the denominator in `Rational`-typed IO context (e.g. in arrays).
* Package Manager
  - `Pkg.precompile` now accepts `timing` as a keyword argument which displays per package timing 
    information for precompilation (e.g. `Pkg.precompile(timing=true)`).

OBS-URL: https://build.opensuse.org/request/show/1135451
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=168
2023-12-28 09:28:50 +00:00
Soc Virnyl Estela
52fdc67b8d OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=167 2023-12-25 18:37:25 +00:00
Soc Virnyl Estela
a37dafadcd - Update specfile:
* symlink libLLVM-14jl.so to standard LD_LIBRARY_PATH
  * new Recommends:
    - libcurl-devel for new recommends
    - openssh-clients for ssh operations
    - curl for any curl operation

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=166
2023-12-25 13:36:00 +00:00
Soc Virnyl Estela
48614aa527 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=165 2023-12-25 13:15:16 +00:00
Soc Virnyl Estela
e88e5b734f - Requires mbedtls-devel for dlopen
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=164
2023-12-25 09:25:38 +00:00
Soc Virnyl Estela
9d5dfaa745 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=163 2023-12-25 09:22:36 +00:00
Soc Virnyl Estela
4c38c2a201 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=162 2023-12-25 09:13:36 +00:00
Soc Virnyl Estela
06daacca04 - Combine these patches to julia-hardcoded-libs.patch and delete:
* libblastrampoline-hardcoded-libs.patch
  * libgit2-libssh2-hardcoded-libs.patch
  * mbedtls-hardcoded-libs.patch
- Slight adjustment of specfile for updated patch

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=161
2023-12-25 08:43:49 +00:00
Soc Virnyl Estela
c06fa8e10b - Add libgit2-libssh2-hardcoded-libs.patch
- Slight adjustment of specfile for new patch

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=160
2023-12-25 08:26:03 +00:00
Soc Virnyl Estela
b5e3233d6d OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=158 2023-12-19 02:43:06 +00:00
Soc Virnyl Estela
d35db44101 - Remove unsatisfactory architectures that does not guaranteed to build.
It seems x86_64 is the guaranteed to work anyway.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=157
2023-12-19 02:36:52 +00:00
Soc Virnyl Estela
fa5dd41c9e - Specfile cleanup:
* specify more dependencies
    - openlibm-devel
    - julia-devel or julia-compat-devel which provides libjulia.so

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=156
2023-12-19 02:30:49 +00:00
Soc Virnyl Estela
865ebe9861 - Some dependencies require to be explicit since Julia uses dlopen
on it's stdlib and other julia scripts

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=155
2023-12-18 22:36:00 +00:00
Soc Virnyl Estela
9b9639b1e7 * Define some dependencies that are dlopened
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=154
2023-12-18 15:07:44 +00:00
Soc Virnyl Estela
87ad15e798 - Specfile cleanup:
* Exclude now only bundled libs
    - LLVM, uv, ccalltest, llvmcalltest, openblas with INTERFACE64 enabled,
      libjulia-internal and libjulia-codegen
  * Fdupe only /usr/share/julia.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=153
2023-12-18 14:34:37 +00:00
Soc Virnyl Estela
882ed055c0 - Fdupe only /usr/share/julia. Causes issues with sofiles that are symlinked
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=152
2023-12-18 10:11:00 +00:00
Soc Virnyl Estela
83259f43d1 - fdupes at the end of the install section.
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=151
2023-12-18 06:24:09 +00:00
Soc Virnyl Estela
700ff40916 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=150 2023-12-18 03:56:59 +00:00
Soc Virnyl Estela
394a4c75d6 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=149 2023-12-18 02:15:53 +00:00
Soc Virnyl Estela
602e266549 - There should be a package libjulia1.
- CFLAGS and CXXFLAGS use provided %optflags.
- libjulia-compat1 should provide libjulia1 to fulfill soname shlib naming policies.
- Remove unused rpmlints:
  * devel-dependency
- Turn all eol encondings to unix to all files
- Add rpmlint for "W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/.pkg"
  That contains julia scripts. Leave it alone.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=148
2023-12-18 02:14:29 +00:00
Soc Virnyl Estela
6f1cf77511 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=147 2023-12-18 00:25:54 +00:00
Soc Virnyl Estela
ed509875fd OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=146 2023-12-17 16:25:06 +00:00
Soc Virnyl Estela
fafc896218 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=145 2023-12-17 15:37:23 +00:00
Soc Virnyl Estela
30223c5b30 - libjulia19 package should be unambiguous if it is for julia-compat or julia
OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=144
2023-12-17 13:01:11 +00:00
Soc Virnyl Estela
ea3e6cc364 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=143 2023-12-17 11:17:48 +00:00
Soc Virnyl Estela
1b234d86b2 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=142 2023-12-17 10:55:43 +00:00
Soc Virnyl Estela
4476154cd0 OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=141 2023-12-17 10:51:12 +00:00
Soc Virnyl Estela
6a9b9d98ab - There should be a package libjulia19.
- CFLAGS and CXXFLAGS use %optflags.

OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=140
2023-12-17 10:50:38 +00:00
86 changed files with 35364 additions and 1544 deletions

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d7afaf2ef1b60e4131f0f6afd16561fbe09cc3276a4805ba45bf06f08d63ae0f
size 20763581

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7936acdfae16b6e944bbf87375c23b6dd0deceb90d625917fa7024b094968a11
size 21275184

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e72a9e5bf0b849011f3707671dc19bcbc40f6fa7b21cfb290d26b4bd2aed877
size 22932730

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a6a159f3f4f6e1e79c6af19ab446257f798efd066c5b2ab3ea2c8db68a0f18bc
size 445144

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c47825e55c671de055c0e61d289d463230834edfc3920a67ef62eb4b8527e058
size 476586

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cb20b68a814c37fa091f38a83f160c5025ecf3234401758c9ca820b10adc58b0
size 528807

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c54e2c5500731f3c3703b592a97d9bf3e63ef0d30aab9106d8531f2a8cc1204
size 4914229

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:628e331c5e9515f678419047c61bb5cbfe31d7f4d5c5fc988b035110e8dce9b1
size 5326792

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be83e539493fe532f65bcd3220a7704ceae8fd9ef5dca64ff169b50ee083aee2
size 5231424

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47063bdbf7a700422211a56eac5ceecad1134c37162c43aac248c779aeb74563
size 707448

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f76cc3f148e278170cbccf4d2f23842f61c06b0ccfad16209b2faa284a582a45
size 747133

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e09a6e894971a7d390d578ce61e73297865321afae4e2d7d751ea1cc205d5517
size 749418

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d729cee7318431c7ec3d641bbaecfb2285395a985c55df905d14b92879bd3eac
size 856789

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e81dfd183d2af8cb4c19fd12f17e03b2d5580c7a460addc0c1aaf6315548feb5
size 955285

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:927ae04d2bbd6cabf064d161beb02af8e04a5077a5028539f75500b2af3a7642
size 952168

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4677fdc4c3b673456d3a4d129821383d69d736d95dcaeaabe8f3a760efcb9a33
size 410826

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8565ee46336ba53e930730a66e35523dcd27a3c52d4024ad04ed680545584d5b
size 441415

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:51ea9f9fb5a5f736db6ec645c782540685e3740dbe99ad8cde3d96029dc3c7f9
size 431463

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6cdf3c08e18925d632601796d8ab3022519c7f1a5e68b4b1a6eea644348cef56
size 693211

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:86e5d2ffa8c07c7101bb291b211486dbfc15deb24aec68af3a3727ee60a6e589
size 649465

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d346e1bb7e711ecd57268977963e9d6ad5756de4da76eb47513f949bb8fde751
size 622742

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:16cf1d96c775a6195451a8402f96ac61e19125ac4841bd9b4d6c6c7f589482bf
size 1283293

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2f95e19da0bc2162619eb9e714e8f2e55d13bd6a2db7859943386853692f2d5
size 1086558

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9aa77c84e6cd934512cd713e53592f7deef6776da544af858e95a55e277bdf20
size 1208108

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:87118c29a52fc11fffd56829a2de0298da514bbd125aaaf6a08937e666687006
size 884650

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be1b3270c1b2e3c417dbfe23b0dd70acb7c5eca493ec4122cb441514dd27c960
size 921950

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:612de389397df50248bf882d1ca4419e20417e058986263de6cf4f4c84fdb4d1
size 891545

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a08415399b0c1be7b0c4e4ecc8edfc4d11e31c98b9a152a80d639e3efff7c120
size 2097771

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6e46314ab56c694e4da7d3c7df018c27d0554f5370fea2258c000a23e90382fe
size 2253652

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a31ed4ff6032ad2c3ec1afae9c6a668618973b2380d3a7bf65e92e83a210415e
size 2178218

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:30a374c4f157c49af80b51f2733a94f2a6a1c3444ed68194fa53c6204e9b35bd
size 7439063

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca302adb7ff19ea8defe2c84ceffd0db735394212ba9afdd714c967de1f9d5fe
size 6638089

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1961f07a0708e837467b47ce844249a1d58cb1d319cc09b6f4ca112e797968a5
size 9531958

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ae803cabe094675aafccb590e47e0c5e682be787b9aa70d8dc97186d300016b
size 329479

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:884461cb9037cb383fbee6e92f0e1f8c5a7f0b8420fcf5c10d3c3c060a7d2b70
size 201113

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:164a5349b6cdcce409e5277afb752b8f4a270b98229d0ab5d626848e7dbdb86e
size 268364

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cda05df078a687378d2e957767bfcd977fbb154381b495d25f96f8611ad2f4cd
size 2166988

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5ab4757a03fb81e6db6b2dff255350fe65857361a647cca59dda0e792d65ff0c
size 2339780

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0d18594db4906bdc81af7ebea8f1b6357394189b2e586bf9ef2225ce858636a2
size 2332880

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fb163789fd69ee871e570add5d98f7cddcd5706cb7af704e4aaec3f14688bb42
size 1369667

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a175a680cbccb574b5ad17b2c98b833918249e1e5a1f024ba4f53aecb90b288a
size 1571419

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fc5a6683cd8d9d6712d34c6bc7d02beac38c9da3aec5ccf392baf58dbb862893
size 1476769

33797
UnicodeData.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf861aa618865fb20ca228c42370ca6bd6aefeb5291954f7c4cbd28b0c9a5a27
size 146800

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e73e8d611ac5c850b796dfb637ac31e5b9ef2e9b9c7e2c93f504c74987f50ad9
size 152417

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:46678eabc97358858872a85192903f427288f9ea814bddc6b3e81a8681b63da4
size 156413

View File

@@ -0,0 +1,15 @@
diff -ruN ../julia-1.10.5.orig/deps/gmp.mk /tmp/julia-1.10.5/deps/gmp.mk
--- julia-1.10.5/deps/gmp.mk 2024-09-25 09:20:05.861086670 +0800
+++ julia-1.10.5/deps/gmp.mk 2024-09-25 09:22:26.475127794 +0800
@@ -62,6 +62,11 @@
patch -p1 -f < $(SRCDIR)/patches/gmp-more_alloc_overflow.patch
echo 1 > $@
+$(SRCCACHE)/gmp-$(GMP_VER)/gmp-6.2.1-arm64-invert_limb.patch-applied: $(SRCCACHE)/gmp-$(GMP_VER)/gmp-6.2.1-arm64-invert_limb.patch-applied
+ cd $(dir $@) && \
+ patch -p1 -f < $(SRCDIR)/patches/gmp-6.2.1-arm64-invert_limb.patch
+ echo 1 > $@
+
$(SRCCACHE)/gmp-$(GMP_VER)/source-patched: $(SRCCACHE)/gmp-$(GMP_VER)/gmp-more_alloc_overflow.patch-applied
echo 1 > $@

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fd2147de47079f541abf1e740c89fd5428a83b23b42137b7d1ffa19d3e1c0076
size 7210

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d5308c8331dbff504ad695fc9ca97724f407ade82af24ecda7471c95c554e354
size 9039

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:438e961781bfa19a281c610a92755d53182f8da0c093aa529451e58e7379b382
size 6617

View File

@@ -0,0 +1,20 @@
diff -ruN julia-1.10.4.orig/doc/Makefile julia-1.10.4/doc/Makefile
--- julia-1.10.4.orig/doc/Makefile 2024-06-06 21:49:32.084595230 +0800
+++ julia-1.10.4/doc/Makefile 2024-06-06 22:04:17.150827400 +0800
@@ -44,16 +44,13 @@
html: deps
@echo "Building HTML documentation."
- $(JULIA_EXECUTABLE) --color=yes $(call cygpath_w,$(SRCDIR)/make.jl) $(DOCUMENTER_OPTIONS)
@echo "Build finished. The HTML pages are in _build/html."
pdf: deps
@echo "Building PDF documentation."
- $(JULIA_EXECUTABLE) --color=yes $(call cygpath_w,$(SRCDIR)/make.jl) -- pdf $(DOCUMENTER_OPTIONS)
@echo "Build finished."
# The deploy target should only be called in CI builds
deploy: deps
@echo "Deploying HTML documentation."
- $(JULIA_EXECUTABLE) --color=yes $(call cygpath_w,$(SRCDIR)/make.jl) -- deploy $(DOCUMENTER_OPTIONS)
@echo "Build & deploy of docs finished."

View File

@@ -0,0 +1,11 @@
diff -ruN julia-1.10.0.orig/doc/Makefile julia-1.10.0/doc/Makefile
--- julia-1.10.0.orig/doc/Makefile 2023-12-27 12:31:21.472814814 +0800
+++ julia-1.10.0/doc/Makefile 2023-12-28 12:02:09.068566373 +0800
@@ -28,7 +28,6 @@
UNICODE_DATA_VERSION=13.0.0
$(SRCCACHE)/UnicodeData-$(UNICODE_DATA_VERSION).txt:
@mkdir -p "$(SRCCACHE)"
- $(JLDOWNLOAD) "$@" https://www.unicode.org/Public/$(UNICODE_DATA_VERSION)/ucd/UnicodeData.txt
deps: $(SRCCACHE)/UnicodeData-$(UNICODE_DATA_VERSION).txt
$(JLCHECKSUM) "$<"

View File

@@ -0,0 +1,14 @@
--- mpn/arm64/invert_limb.asm.orig 2020-12-09 08:22:02.101836933 +0100
+++ mpn/arm64/invert_limb.asm 2020-12-09 08:22:55.774456637 +0100
@@ -41,9 +41,9 @@
ASM_START()
PROLOGUE(mpn_invert_limb)
lsr x2, x0, #54
- LEA_HI( x1, approx_tab)
+ adrp x1, approx_tab
and x2, x2, #0x1fe
- LEA_LO( x1, approx_tab)
+ add x1, x1, :lo12:approx_tab
ldrh w3, [x1,x2]
lsr x4, x0, #24
add x4, x4, #1

3
julia-1.10.5-full.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5fc94159b87f34d18bf44a1a940e59f40cbeab931bfdc0c4763203bbb6995260
size 318683963

View File

@@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJLBAABCAA1FiEENnPfUp2QSUd/drN1ZuPH3APW5JUFAmbOSnMXHGJ1aWxkYm90
QGp1bGlhbGFuZy5vcmcACgkQZuPH3APW5JWoeQ/8D3Vnnw3paRULKr+YEWh2gEoJ
MZbIFwuTqqfuL7CSSnuXrBGM9FzoWVt9rvVuEh4/LLZ1xpjN+6rGn09f8wx/sMGR
JseF+/KlmhFTutZyPPG6uHt3Xp8f81B2NmxfvhJ9ymknosxHnJLoxpgq4zxJPyNx
S99WxxYd+lg9Pc36+3HR6mT+rQoAo4VeEuW1MbSk+rhd8M47T21cpYQQgSUDKCnK
rd4mw1FAm2BNLWNJdWqyHzB2sviPc+/9/mse4KkAHj/UXbEom6VYu4wKvffxLoAr
WrPP8v1dl+Kv25UAThTKl6lSJowIPFROcK/9QnGpC9MqlJQzlSOLXBTdcz8z5yX+
Kc4BMcKCBNEmqY+ueTVwEvt9k8FSoGbvUUlcbc+Fdoag7cIGwtMTZgyx9OPgKMq1
aFZ3G1VATwb1RNFEFPhly1ish4TQJNj5pVg12pKYCX20m3gvHkiDKvE1p3SwhU9i
CsbfmauDMBw2raQxcEhv7Xhc4JkJpXDgDikpbH2MQ/aqmOQR0VfXfaHnsHzpSyUo
nrQk+t0xFKKxar3u1Y+bWkHRLpSRUxOTLQZrHXdxr6dw93PTYwMOJDnpe/DFFRZu
uVK4J3nh/T76DVpyXG8ikFxFtDUdinsRcftTt8YDfoZXdlJOA/AdXuqg//a49HYG
y7yjVYgqIDWODAoraqY=
=2rK8
-----END PGP SIGNATURE-----

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:61843b9647fd06d3b2994f3277a64de1cb5a5a5297d930b8c8e3bc0e93740024
size 294983229

View File

@@ -1,28 +1,3 @@
diff --git a/stdlib/nghttp2_jll/src/nghttp2_jll.jl b/stdlib/nghttp2_jll/src/nghttp2_jll.jl
index 8b98c76ac5..77ad9e3800 100644
--- a/stdlib/nghttp2_jll/src/nghttp2_jll.jl
+++ b/stdlib/nghttp2_jll/src/nghttp2_jll.jl
@@ -22,7 +22,7 @@ if Sys.iswindows()
elseif Sys.isapple()
const libnghttp2 = "@rpath/libnghttp2.14.dylib"
else
- const libnghttp2 = "libnghttp2.so.14"
+ const libnghttp2 = "libnghttp2.so"
end
function __init__()
diff --git a/stdlib/LibGit2_jll/src/LibGit2_jll.jl b/stdlib/LibGit2_jll/src/LibGit2_jll.jl
index f0d4b5dda6..2ed3017b51 100644
--- a/stdlib/LibGit2_jll/src/LibGit2_jll.jl
+++ b/stdlib/LibGit2_jll/src/LibGit2_jll.jl
@@ -23,7 +23,7 @@ if Sys.iswindows()
elseif Sys.isapple()
const libgit2 = "@rpath/libgit2.1.5.dylib"
else
- const libgit2 = "libgit2.so.1.5"
+ const libgit2 = "libgit2.so"
end
function __init__()
diff --git a/stdlib/OpenLibm_jll/src/OpenLibm_jll.jl b/stdlib/OpenLibm_jll/src/OpenLibm_jll.jl
index 215de8aed6..918d1ffdc2 100644
@@ -37,38 +12,21 @@ index 215de8aed6..918d1ffdc2 100644
end
function __init__()
diff --git a/stdlib/SuiteSparse_jll/src/SuiteSparse_jll.jl b/stdlib/SuiteSparse_jll/src/SuiteSparse_jll.jl
index 2940970cef..359dbd9065 100644
--- a/stdlib/SuiteSparse_jll/src/SuiteSparse_jll.jl
+++ b/stdlib/SuiteSparse_jll/src/SuiteSparse_jll.jl
@@ -67,18 +67,18 @@ elseif Sys.isapple()
const libsuitesparseconfig = "@rpath/libsuitesparseconfig.5.dylib"
const libumfpack = "@rpath/libumfpack.5.dylib"
From: Soc Virnyl Estela <contact@uncomfyhalomacro.pl>
Date: Sat, 09 Dec 2023 16:30:31 +0800
Subject: Change hardcoded libs for libblastrampoline
---
diff -ruN julia-1.9.4.orig/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl julia-1.9.4/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl
--- julia-1.9.4.orig/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl 2023-12-09 14:21:37.910096392 +0800
+++ julia-1.9.4/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl 2023-12-09 14:21:58.006998468 +0800
@@ -24,7 +24,7 @@
elseif Sys.isapple()
"@rpath/libblastrampoline.5.dylib"
else
- const libamd = "libamd.so.2"
- const libbtf = "libbtf.so.1"
- const libcamd = "libcamd.so.2"
- const libccolamd = "libccolamd.so.2"
- const libcholmod = "libcholmod.so.3"
- const libcolamd = "libcolamd.so.2"
- const libklu = "libklu.so.1"
- const libldl = "libldl.so.2"
- const librbio = "librbio.so.2"
- const libspqr = "libspqr.so.2"
- const libsuitesparseconfig = "libsuitesparseconfig.so.5"
- const libumfpack = "libumfpack.so.5"
+ const libamd = "libamd.so"
+ const libbtf = "libbtf.so"
+ const libcamd = "libcamd.so"
+ const libccolamd = "libccolamd.so"
+ const libcholmod = "libcholmod.so"
+ const libcolamd = "libcolamd.so"
+ const libklu = "libklu.so"
+ const libldl = "libldl.so"
+ const librbio = "librbio.so"
+ const libspqr = "libspqr.so"
+ const libsuitesparseconfig = "libsuitesparseconfig.so"
+ const libumfpack = "libumfpack.so"
- "libblastrampoline.so.5"
+ "libblastrampoline.so"
end
function __init__()

View File

@@ -1,77 +0,0 @@
From 764484f58b5daead9fd58de08ce35382758d3985 Mon Sep 17 00:00:00 2001
From: Yichao Yu <yyc1992@gmail.com>
Date: Sun, 10 Sep 2023 14:07:57 -0400
Subject: [PATCH] libgit2 1.7.0 support
---
stdlib/LibGit2/src/consts.jl | 5 +++++
stdlib/LibGit2/src/types.jl | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/stdlib/LibGit2/src/consts.jl b/stdlib/LibGit2/src/consts.jl
index f3a460108db6b..8f0e6eeb2ec87 100644
--- a/stdlib/LibGit2/src/consts.jl
+++ b/stdlib/LibGit2/src/consts.jl
@@ -468,4 +468,9 @@ Option flags for `GitProxy`.
TRACE_TRACE
end
+# The type of object id
+@enum(GIT_OID_TYPE,
+ _OID_DEFAULT = 0,
+ OID_SHA1 = 1)
+
end
diff --git a/stdlib/LibGit2/src/types.jl b/stdlib/LibGit2/src/types.jl
index 0b653f9b6ad21..c796ff0f98b20 100644
--- a/stdlib/LibGit2/src/types.jl
+++ b/stdlib/LibGit2/src/types.jl
@@ -2,7 +2,7 @@
using Base: something
import Base.@kwdef
-import .Consts: GIT_SUBMODULE_IGNORE, GIT_MERGE_FILE_FAVOR, GIT_MERGE_FILE, GIT_CONFIG
+import .Consts: GIT_SUBMODULE_IGNORE, GIT_MERGE_FILE_FAVOR, GIT_MERGE_FILE, GIT_CONFIG, GIT_OID_TYPE
const OID_RAWSZ = 20
const OID_HEXSZ = OID_RAWSZ * 2
@@ -439,6 +439,9 @@ The fields represent:
# options controlling how the diff text is generated
context_lines::UInt32 = UInt32(3)
interhunk_lines::UInt32 = UInt32(0)
+ @static if LibGit2.VERSION >= v"1.7.0"
+ oid_type::GIT_OID_TYPE = Consts._OID_DEFAULT
+ end
id_abbrev::UInt16 = UInt16(7)
max_size::Int64 = Int64(512*1024*1024) #512Mb
old_prefix::Cstring = Cstring(C_NULL)
diff --git a/stdlib/LibGit2/test/libgit2-tests.jl b/stdlib/LibGit2/test/libgit2-tests.jl
index 4ace98a0b1..f230ff4e14 100644
--- a/stdlib/LibGit2/test/libgit2-tests.jl
+++ b/stdlib/LibGit2/test/libgit2-tests.jl
@@ -1181,19 +1177,19 @@ mktempdir() do dir
@testset "diff" begin
LibGit2.with(LibGit2.GitRepo(cache_repo)) do repo
@test !LibGit2.isdirty(repo)
- @test !LibGit2.isdirty(repo, test_file)
- @test !LibGit2.isdirty(repo, "nonexistent")
+# @test !LibGit2.isdirty(repo, test_file)
+# @test !LibGit2.isdirty(repo, "nonexistent")
@test !LibGit2.isdiff(repo, "HEAD")
@test !LibGit2.isdirty(repo, cached=true)
- @test !LibGit2.isdirty(repo, test_file, cached=true)
- @test !LibGit2.isdirty(repo, "nonexistent", cached=true)
+# @test !LibGit2.isdirty(repo, test_file, cached=true)
+# @test !LibGit2.isdirty(repo, "nonexistent", cached=true)
@test !LibGit2.isdiff(repo, "HEAD", cached=true)
open(joinpath(cache_repo,test_file), "a") do f
println(f, "zzzz")
end
@test LibGit2.isdirty(repo)
- @test LibGit2.isdirty(repo, test_file)
- @test !LibGit2.isdirty(repo, "nonexistent")
+# @test LibGit2.isdirty(repo, test_file)
+# @test !LibGit2.isdirty(repo, "nonexistent")
@test LibGit2.isdiff(repo, "HEAD")
@test !LibGit2.isdirty(repo, cached=true)
@test !LibGit2.isdiff(repo, "HEAD", cached=true)

View File

@@ -1,20 +0,0 @@
diff --git a/src/debuginfo.cpp b/src/debuginfo.cpp
index 95b562311b..69fceb0cfe 100644
--- a/src/debuginfo.cpp
+++ b/src/debuginfo.cpp
@@ -265,6 +265,7 @@ public:
di->format = UNW_INFO_FORMAT_ARM_EXIDX;
di->start_ip = (uintptr_t)arm_text_addr;
di->end_ip = (uintptr_t)(arm_text_addr + arm_text_len);
+ di->load_offset = 0;
di->u.rti.name_ptr = 0;
di->u.rti.table_data = arm_exidx_addr;
di->u.rti.table_len = arm_exidx_len;
@@ -1577,6 +1578,7 @@ void register_eh_frames(uint8_t *Addr, size_t Size)
di->u.rti.table_data = (unw_word_t)table;
di->start_ip = start_ip;
di->end_ip = end_ip;
+ di->load_offset = 0;
jl_profile_atomic([&]() {
_U_dyn_register(di);

View File

@@ -0,0 +1,29 @@
diff --git a/Makefile b/Makefile
index 1565014a0f..5e9b4ccf54 100644
--- a/Makefile
+++ b/Makefile
@@ -196,7 +196,7 @@ else ifeq ($(JULIA_BUILD_MODE),debug)
JL_PRIVATE_LIBS-0 += libjulia-internal-debug libjulia-codegen-debug
endif
ifeq ($(USE_GPL_LIBS), 1)
-JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBSUITESPARSE) += libamd libbtf libcamd libccolamd libcholmod libcholmod_cuda libcolamd libklu libldl librbio libspqr libspqr_cuda libsuitesparseconfig libumfpack
+JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBSUITESPARSE) += libamd libbtf libcamd libccolamd libcholmod libcolamd libklu libldl librbio libspqr libsuitesparseconfig libumfpack
endif
JL_PRIVATE_LIBS-$(USE_SYSTEM_LIBBLASTRAMPOLINE) += libblastrampoline
JL_PRIVATE_LIBS-$(USE_SYSTEM_PCRE) += libpcre2-8
diff --git a/base/Makefile b/base/Makefile
index ad2bb6a63c..493302af78 100644
--- a/base/Makefile
+++ b/base/Makefile
@@ -269,11 +269,9 @@ $(eval $(call symlink_system_library,LIBSUITESPARSE,libamd))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcamd))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libccolamd))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcholmod))
-$(eval $(call symlink_system_library,LIBSUITESPARSE,libcholmod_cuda))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libcolamd))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libumfpack))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libspqr))
-$(eval $(call symlink_system_library,LIBSUITESPARSE,libspqr_cuda))
$(eval $(call symlink_system_library,LIBSUITESPARSE,libsuitesparseconfig))
# EXCLUDED LIBRARIES (installed/used, but not vendored for use with dlopen):
# libunwind

View File

@@ -5,5 +5,17 @@ addFilter("E: arch-dependent-file-in-usr-share*")
# We should not unstrip sofiles or binaries generated from this package
# https://github.com/JuliaLang/julia/issues/17941
addFilter("unstripped-binary-or-object")
# Julia should be an exception. Otherwise, it fails to execute :)
addFilter("W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/*")
# Julia is unique that rpm cant detect what it needs because
# it is dlopened
addFilter("explicit-lib-dependency")
addFilter("devel-dependency")
# Update alternatives does provide the binary
addFilter("W: desktopfile-without-binary /usr/share/applications/julia.desktop julia")
# We should not touch these
addFilter("W: hidden-file-or-dir /usr/share/julia/base/JuliaSyntax/.mailmap")
addFilter("W: hidden-file-or-dir /usr/share/julia/stdlib/v1.10/Pkg/test/test_packages/AugmentedPlatform/.pkg")
addFilter("W: hidden-file-or-dir /usr/share/julia/stdlib/v1.10/Pkg/test/test_packages/AugmentedPlatform/.pkg")
# LibGit_jll test case
addFilter("W: pem-certificate /usr/share/julia/stdlib/v1.10/LibGit2/test/bad_ca_roots.pem")
addFilter("E: shlib-policy-name-error*")

View File

@@ -1,40 +0,0 @@
--- a/src/solvers/cholmod.jl.orig 2022-11-11 07:24:15.860939080 +0000
+++ b/src/solvers/cholmod.jl 2022-11-11 07:24:39.462357069 +0000
@@ -194,21 +194,6 @@
from www.julialang.org, which ship with the correct
versions of all dependencies.
"""
- elseif BUILD_VERSION.major != current_version.major
- @warn """
- CHOLMOD version incompatibility
-
- Julia was compiled with CHOLMOD version $BUILD_VERSION. It is
- currently linked with version $current_version.
- This might cause Julia to terminate when working with
- sparse matrix factorizations, e.g. solving systems of
- equations with \\.
-
- It is recommended that you use Julia with the same major
- version of CHOLMOD as the one used during the build, or
- download the generic binaries from www.julialang.org,
- which ship with the correct versions of all dependencies.
- """
end
intsize = sizeof(SuiteSparse_long)
@@ -232,15 +232,6 @@ function __init__()
"""
end
- # Register gc tracked allocator if CHOLMOD is new enough
- if current_version >= v"3.0.0"
- cnfg = cglobal((:SuiteSparse_config, :libsuitesparseconfig), Ptr{Cvoid})
- unsafe_store!(cnfg, cglobal(:jl_malloc, Ptr{Cvoid}), 1)
- unsafe_store!(cnfg, cglobal(:jl_calloc, Ptr{Cvoid}), 2)
- unsafe_store!(cnfg, cglobal(:jl_realloc, Ptr{Cvoid}), 3)
- unsafe_store!(cnfg, cglobal(:jl_free, Ptr{Cvoid}), 4)
- end
-
catch ex
@error "Error during initialization of module CHOLMOD" exception=ex,catch_backtrace()
end

View File

@@ -1,3 +1,676 @@
-------------------------------------------------------------------
Fri Jan 17 01:25:00 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- Drop unneeeded BuildRequires on python3-recommonmark.
-------------------------------------------------------------------
Fri Oct 4 12:41:44 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Remove deps-makefile.patch
- Do not force gcc versions
- Revert to use system libcurl-devel
- Use clang over gcc
-------------------------------------------------------------------
Wed Oct 2 01:45:30 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Attempt to let Julia's build logic handle which are missing
-------------------------------------------------------------------
Tue Oct 1 06:52:43 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Use bundled libcurl. The recent version breaks Julia.
-------------------------------------------------------------------
Mon Sep 30 01:40:31 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Disable INTEL_JITEVENTS. Accidentally enabled during testing.
-------------------------------------------------------------------
Fri Sep 27 13:21:20 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Remove julia-libunwind-1.9.patch
-------------------------------------------------------------------
Thu Sep 26 00:09:24 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Use bundled libunwind
-------------------------------------------------------------------
Wed Sep 25 01:27:20 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add the following gmp patches
* ./gmp-6.2.1-arm64-invert_limb.patch
* ./apply-gmp-arm64-invert_limb.patch
-------------------------------------------------------------------
Tue Sep 24 01:20:22 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add pp64le variants of the bundled deps
* CompilerSupportLibraries.v1.1.1+0.powerpc64le-linux-gnu-libgfortran5.tar.gz
* GMP.v6.2.1+6.powerpc64le-linux-gnu-cxx11.tar.gz
* LLD.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
* LibCURL.v8.4.0+0.powerpc64le-linux-gnu.tar.gz
* LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz
* LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz
* LibUV.v2.0.1+14.powerpc64le-linux-gnu.tar.gz
* LibUnwind.v1.5.0+5.powerpc64le-linux-gnu.tar.gz
* MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz
* MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz
* OpenBLAS.v0.3.23+4.powerpc64le-linux-gnu-libgfortran5.tar.gz
* OpenLibm.v0.8.1+2.powerpc64le-linux-gnu.tar.gz
* PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz
* SuiteSparse.v7.2.1+1.powerpc64le-linux-gnu.tar.gz
* Zlib.v1.2.13+1.powerpc64le-linux-gnu.tar.gz
* dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz
* julia.spec
* libLLVM.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
* libblastrampoline.v5.11.0+0.powerpc64le-linux-gnu.tar.gz
* nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz
* p7zip.v17.4.0+2.powerpc64le-linux-gnu.tar.gz
-------------------------------------------------------------------
Mon Sep 23 10:11:57 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add the aarch64 variants of the bundled deps
* CompilerSupportLibraries.v1.1.1+0.aarch64-linux-gnu-libgfortran5.tar.gz
* GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz
* LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
* LibCURL.v8.4.0+0.aarch64-linux-gnu.tar.gz
* LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz
* LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz
* LibUV.v2.0.1+14.aarch64-linux-gnu.tar.gz
* LibUnwind.v1.5.0+5.aarch64-linux-gnu.tar.gz
* MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz
* MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz
* OpenBLAS.v0.3.23+4.aarch64-linux-gnu-libgfortran5.tar.gz
* OpenLibm.v0.8.1+2.aarch64-linux-gnu.tar.gz
* PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz
* SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
* Zlib.v1.2.13+1.aarch64-linux-gnu.tar.gz
* dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz
* julia.spec
* libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
* libblastrampoline.v5.11.0+0.aarch64-linux-gnu.tar.gz
* nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz
* p7zip.v17.4.0+2.aarch64-linux-gnu.tar.gz
-------------------------------------------------------------------
Sat Sep 21 06:20:30 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add ./libblastrampoline.v5.11.0+0.x86_64-linux-gnu.tar.gz
-------------------------------------------------------------------
Sat Sep 21 00:55:28 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add ./deps-makefile.patch
-------------------------------------------------------------------
Wed Sep 18 14:07:20 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- The full.tar.gz tarball is not a full.tar.gz tarball so we have to
manually add the sources now.
* add CompilerSupportLibraries.v1.1.1+0.x86_64-linux-gnu-libgfortran5.tar.gz
* add dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz
* add GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz
* add LibCURL.v8.4.0+0.x86_64-linux-gnu.tar.gz
* add LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz
* add libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
* add LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz
* add LibUnwind.v1.5.0+5.x86_64-linux-gnu.tar.gz
* add LibUV-v2.0.1+14.x86_64-linux-gnu.tar.gz
* add LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
* add MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz
* add MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz
* add nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz
* add OpenBLAS.v0.3.23+4.x86_64-linux-gnu-libgfortran5.tar.gz
* add OpenLibm.v0.8.1+2.x86_64-linux-gnu.tar.gz
* add p7zip.v17.4.0+2.x86_64-linux-gnu.tar.gz
* add PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz
* add SuiteSparse.v7.2.1+1.x86_64-linux-gnu.tar.gz
* add Zlib.v1.2.13+1.x86_64-linux-gnu.tar.gz
-------------------------------------------------------------------
Mon Sep 16 12:18:23 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl>
- Add -Wno-implicit-function-declaration for CFLAGS and CXXFLAGS
* this is an issue building with source-vendored GMP.
* see https://discourse.julialang.org/t/building-julia-for-nix/115304/6.
it might be a nix build issue but it affects all distros tbh.
- Adopt buildkite env from Julia's CI. See utilities/build_envs.sh.
- Update CFLAGS and CXXFLAGS to %optflags macro
- Reenable other architectures for testing
- BUG-GCC-LLVM-UPSTREAM: Add -Wno-error=incompatible-pointer-types for aarch64.
* already fixed but still affecting the vendored LLVM build. might be an openSUSE
GCC issue (need to confirm but let's just by-pass the warning for now).
* reference issue -> https://github.com/JuliaLang/julia/issues/45400
- Update julia.specfile
* remove allow_libssp_libatomic_and_libgomp_to_fail_as_they_are_not_available_on_all_systems.patch
- Update to version 1.10.5:
* bump Pkg to latest 1.10
* 🤖 [backports-release-1.10] Bump the Pkg stdlib from 45521a6e8 to a4f26cff6
* 🤖 [backports-release-1.10] Bump the Pkg stdlib from 9cb6d35f8 to 45521a6e8
* `stale_cachefile`: handle if the expected cache file is missing
* bump Pkg to latest 1.10
* Fix tr for block SymTridiagonal
* [libblastrampoline] Bump to v5.11.0
* Profile: Fix stdlib paths
* Restrict argument to `isleapyear(::Integer)`
* Add `lbt_forwarded_funcs()` to debug LBT forwarding issues
* Fix a bug in `stack`'s DimensionMismatch error message
* [docs] change docstring to match code
* AllocOpt: Fix stack lowering where alloca continas boxed and unboxed data
* [build] Some improvements to the LLVM build system
* 🤖 [backports-release-1.10] Bump the Pkg stdlib from bf83c387b to ff18647d8
* Add openlibm to sysimg link line on windows
* Remove the WarnMissedTransformations pass from the 1.10 pipeline
* Do not hide libssp.dll.a (Windows import library) in private library dir
* fixup some casts in uv code, extraced from commit e5496e0
* Fix calling LLVM_SIZE on windows
* relax equality in trace test
* Remove reference to memory attribute in llvm pass
* Disable typed pointer tests for alloc-opt-pass since the base file is now using opaque pointers
* bump Pkg to latest v1.10
* Bump libblastrampoline to v5.10.1
* add missing compat entry to edit
* LinearAlgebra: LazyString in error messages for Diagonal/Bidiagonal
* Use triple quotes in TOML.print when string contains newline
* Fix assertion/crash when optimizing function with dead basic block
* more precise aliasing checks for SubArray
* document mutable struct const fields
* correction to compat notice for a[begin]
* compat notice for a[begin] indexing
* Compat for `Base.@nospecializeinfer`
* Update the aarch64 devdocs to reflect the current state of its support
* Fix generic triangular solves with empty matrices
* Profile: Improve module docstring
* Remove boxing in pinv
* `LazyString` in `LinearAlgebra.checksquare` error message
* LinearAlgebra: use `≈` instead of `==` for `tr` tests in symmetric.jl
* 🤖 [backports-release-1.10] Bump the Pkg stdlib from f487626b0 to 6d73ac1fc
* [release-1.10] fix a race condition in jl_gc_realloc_string
* Do not add type tag size to the `alloc_typed` lowering for GC allocations
* add sticky task warning to `@task` and `schedule`
* [LinearAlgebra] Improve resilience to unknown libblastrampoline flags
* make: use `readelf` for LLVM symbol version detection
* LazyString in reinterpretarray error messages
* make: Fix `sed` command for LLVM libraries with no symbol versioning
* Add boundscheck in bindingkey_eq to avoid OOB access due to data race
* ensure we set the right value to gc_first_tid
* Aggressive constprop in trevc! to stabilize triangular eigvec
* Fix trampoline assembly for build on clang 18 on apple silicon
* Allow libquadmath to also fail as it is not available on all systems
-------------------------------------------------------------------
Fri Jun 7 17:17:22 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Fix build. typo caused a misconfigure:
JULIA_CPU_TARGETS -> JULIA_CPU_TARGET
-------------------------------------------------------------------
Thu Jun 6 14:06:50 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update ./disable-doc-gen-in-makefile.patch. Upstream has patched to allow offline
builds but added commands in the `doc/Makefile` that needs network.
-------------------------------------------------------------------
Thu Jun 6 00:14:25 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update to version 1.10.4:
* correctly track freed bytes in array_to_string
* Add inventory writing via DocumenterInventoryWritingBackport
* Overload Base.literal_pow for AbstractQ
* LinearAlgebra: Correct zero element in _generic_matvecmul! for block adj/trans
* set MAX_OS_WRITE on unix
* fix typo in gc_mark_memory8 when chunking a large array
* typeintersect: fix another stack overflow caused by circular constraints
* Fix an off-by-one error in interpreter's do_invoke
* Make TestLogger thread-safe (introduce a lock)
* Add a missing doc
* typeintersect: conservative typevar subtitution during `finish_unionall
* typeintersect: followup cleanup for the nothrow path of type instantiation
* merge backports for 1.10.4
-------------------------------------------------------------------
Tue Jun 4 06:42:27 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update description
* Julia now works as it follows closely with build sources with some exceptions.
* Recommend to use juliaup.
* Remove experimental. This works quite well now even with LinearAlgebra and
Sundials.
-------------------------------------------------------------------
Wed May 29 13:42:29 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update JULIA_CPU_TARGETS
-------------------------------------------------------------------
Wed May 29 03:29:01 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Reenable aarch64 builds with patch
./allow_libssp_libatomic_and_libgomp_to_fail_as_they_are_not_available_on_all_systems.patch
-------------------------------------------------------------------
Wed May 22 00:19:35 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Cleanup
* remove libmbedcrypto as mbedtls is bundled
-------------------------------------------------------------------
Mon May 20 12:12:39 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- libjulia-compat1_10 provides libjulia1_10. added rpmlint filter
to workaround rpmlint error on ldconfig_scriptlet
-------------------------------------------------------------------
Mon May 20 05:21:58 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update rpmlint.
* bad-cert.pem is a test file in LibGit2_jll.
- Update specfile.
* cleanup symlinks. these files should just point starting from buildroot
-------------------------------------------------------------------
Sun May 19 10:18:13 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- The location of libgcc_s is different between leap and tumbleweed.
- Prevent debug-info generation touching precompiled sysimages and caches which will
invalidate checksum generation
-------------------------------------------------------------------
Sat May 18 11:34:00 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update rpmlintrc to ignore some warnings
-------------------------------------------------------------------
Sat May 18 11:26:17 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Fix dangling symlinks errors
-------------------------------------------------------------------
Sat May 18 00:32:29 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Inconsistencies on where sbinaries are located in openSUSE Leap and Tumbleweed
has caused leap rpm generation to fail after all the builds done successfully.
-------------------------------------------------------------------
Fri May 17 07:31:28 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Julia on leap has trouble looking for libgfortran5 so symlinking it to fix it
- Format specfile
-------------------------------------------------------------------
Fri May 17 00:17:42 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Fix specfile
* p7zip for tumbleweed
* p7zip-full for leap
-------------------------------------------------------------------
Thu May 16 15:18:08 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- More cleanup
-------------------------------------------------------------------
Wed May 15 12:33:37 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Also include OPENBLAS_TARGET_ARCH=NEHALEM in %{__julia_opts} for system not tumbleweed
-------------------------------------------------------------------
Wed May 15 12:09:21 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- More specfile cleanup
* Move over some environmental variables into the %{__julia_opts} global rpm var
* Adjust to support if system is not Tumbleweed. openblas not building because libpthread troubles
-------------------------------------------------------------------
Wed May 15 11:35:28 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Fix ./julia-libunwind-1.9.patch.
-------------------------------------------------------------------
Wed May 15 10:24:04 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Cleanup specfile
* Use autosetup
* Remove patches that are not needed anymore
- llvm-link-shared.patch
- llvm-set-of-custom-patches.patch
- new-pass-manager.patch
- support-float16-depending-on-llvm-and-platform.patch
- use-newpm-asan.patch
- fix-dependencies-checksums.patch
- julia-suitesparse-7.patch
- use-system-libuv-correctly.patch
- julia-libgit2-1.7.patch
-------------------------------------------------------------------
Sun May 12 14:19:36 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update to version 1.10.3:
* Fix outdated usage of scrubbing for log test failures
* [REPL] Fix typo in using/import completion
* Avoid compiler warning about redefining jl_globalref_t
* yet more atomics & cache-line fixes on work-stealing queue
* build: remove extra .a file
* Bump CSL to 1.1.1 to fix libgomp bug
* codegen: change tbaa of ptr_phi to tbaa_value
* Default to the medium code model in x86 linux
* Remove some duplicates from emitted compilation traces for Julia 1.10
* Add version string to sysimg triple
* Add missing GC_POP() in emit_cfunction
* typeintersect: fix UnionAll unaliasing bug caused by innervars
* Apply backported changes
- GC typo fix
- Add inventory writing via DocumenterInventoryWritingBackport
- Add mpfr-looking-for-gmp-fix.patch
- Cleanup specfile
- Limit to x86_64(-v3) architectures. aarch64 has libquadmath disabled
- Tests are currently broken. Idk how upstream was able to have all their checks green despite
I using the some bundled dependencies. Other issues are because of hardcoded libraries in
the jll packages even though their versions are non-impactful to Julia.
-------------------------------------------------------------------
Fri Apr 26 00:46:22 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Nghttp, Mbedtls, PCRE, LibGit2, LibSSH, gmp, mpfr, and DSFMT are now using the bundled dependencies.
* now added to the globally defined _privatelibs
* ./julia-hardcoded-libs.patch is now updated.
* the only dependencies that do not require much intervention is libblastrampoline and openlibm
-------------------------------------------------------------------
Wed Apr 24 10:16:59 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update to version 1.10.2:
* JuliaSyntax.jl is now used as the default parser, providing better diagnostics and faster
parsing. Set environment variable `JULIA_USE_FLISP_PARSER` to `1` to switch back to the old
parser if necessary (and if you find this necessary, please file an issue).
* `⥺` (U+297A, `\leftarrowsubset`) and `⥷` (U+2977, `\leftarrowless`) may now be used as
binary operators with arrow precedence.
* When a task forks a child, the parent task's task-local RNG (random number
generator) is no longer affected. The seeding of child based on the parent
task also takes a more disciplined approach to collision resistance, using
a design based on the SplitMix and DotMix splittable RNG schemes.
* A new more-specific rule for methods resolves ambiguities containing Union{} in favor of
the method defined explicitly to handle the Union{} argument. This makes it possible to
define methods to explicitly handle Union{} without the ambiguities that commonly would
result previously. This also lets the runtime optimize certain method lookups in a way
that significantly improves load and inference times for heavily overloaded methods that
dispatch on Types (such as traits and constructors).
* The "h bar" `ℏ` (`\hslash` U+210F) character is now treated as equivalent to `ħ` (`\hbar` U+0127).
* The `@simd` macro now has more limited and clearer semantics: it only enables reordering and contraction
of floating-point operations, instead of turning on all "fastmath" optimizations.
If you observe performance regressions due to this change, you can
recover previous behavior with `@fastmath @simd`, if you are OK with
all the optimizations enabled by the `@fastmath` macro.
* When a method with keyword arguments is displayed in the stack trace view, the textual
representation of the keyword arguments' type is simplified using the new
`@Kwargs{key1::Type1, ...}` macro syntax.
* The mark phase of the garbage collector is now multi-threaded.
* [JITLink](https://llvm.org/docs/JITLink.html) is enabled by default on
Linux aarch64 when Julia is linked to LLVM 15 or later versions.
This should resolve many segmentation faults previously observed on this
platform.
* The precompilation process now uses pidfile locks and orchestrates
multiple julia processes to only have one process
spend effort precompiling while the others wait. Previously all would
do the work and race to overwrite the cache files.
* New option `--gcthreads` to set how many threads will be used by the
garbage collector.
The default is `N/2` where `N` is the number of worker threads
(`--threads`) used by Julia.
* SparseArrays and SuiteSparse are no longer included in the default system
image, so the core language no longer contains GPL libraries. However,
these libraries are still included alongside the language in the standard
binary distribution.
* `tanpi` is now defined. It computes tan(π*x) more accurately than
`tan(pi*x)`.
* `fourthroot(x)` is now defined in `Base.Math` and can be used to compute
the fourth root of `x`. It can also be accessed using the unicode
character `∜`, which can be typed by `\fourthroot<tab>`.
* `Libc.memmove`, `Libc.memset`, and `Libc.memcpy` are now defined, whose
functionality matches that of their respective C calls.
* `Base.isprecompiled(pkg::PkgId)` has been added, to identify whether a
package has already been precompiled.
* `binomial(x, k)` now supports non-integer `x`.
* A `CartesianIndex` is now treated as a "scalar" for broadcasting.
* `printstyled` now supports italic output.
* `parent` and `parentindices` support `SubString`s.
* `replace(string, pattern...)` now supports an optional `IO` argument to
write the output to a stream rather than returning a string.
* `startswith` now supports seekable `IO` streams.
* The `initialized=true` keyword assignment for `sortperm!` and
`partialsortperm!` is now a no-op. It previously exposed unsafe behavior.
* Printing integral `Rational`s will skip the denominator in `Rational`-typed
IO context (e.g. in arrays).
* `Pkg.precompile` now accepts `timing` as a keyword argument
which displays per package timing information for precompilation
(e.g. `Pkg.precompile(timing=true)`).
* `AbstractQ` no longer subtypes `AbstractMatrix`. Moreover,
`adjoint(Q::AbstractQ)` no longer wraps `Q` in an `Adjoint` type,
but instead in an `AdjointQ`, that itself subtypes `AbstractQ`. This
change accounts for the fact that typically `AbstractQ` instances
behave like function-based, matrix-backed linear operators, and
hence don't allow for efficient indexing. Also, many `AbstractQ`
types can act on vectors/matrices of different size, acting like a
matrix with context-dependent size. With this change, `AbstractQ`
has a well-defined API that is described in detail in the [Julia
documentation](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/#man-linalg-abstractq).
* Adjoints and transposes of `Factorization` objects are no longer wrapped
in `Adjoint` and `Transpose` wrappers, respectively. Instead, they are
wrapped in `AdjointFactorization` and `TranposeFactorization` types,
which themselves subtype `Factorization`.
* New functions `hermitianpart` and `hermitianpart!` for extracting the
Hermitian (real symmetric) part of a matrix.
* The `norm` of the adjoint or transpose of an `AbstractMatrix` now returns
the norm of the parent matrix by default, matching the current behaviour
for `AbstractVector`s.
* `eigen(A, B)` and `eigvals(A, B)`, where one of `A` or `B` is symmetric
or Hermitian, are now fully supported.
* `eigvals/eigen(A, cholesky(B))` now computes the generalized eigenvalues
(`eigen`: and eigenvectors) of `A` and `B` via Cholesky decomposition
for positive definite `B`. Note: The second argument is the output of
`cholesky`.
* Format specifiers now support dynamic width and precision, e.g. `%*s`
and `%*.*g`.
* When stack traces are printed, the printed depth of types in function
signatures will be limited
to avoid overly verbose output.
* The `@test_broken` macro (or `@test` with `broken=true`) now complains
if the test expression returns a non-boolean value in the same way as
a non-broken test.
* When a call to `@test` fails or errors inside a function, a larger
stacktrace is now printed such that the location of the test within a
`@testset` can be retrieved.
* `code_native` and `@code_native` now default to intel syntax instead
of AT&T.
* `@time_imports` now shows the timing of any module `__init__()`s that
are run.
* The `@pure` macro is now deprecated. Use `Base.@assume_effects :foldable` instead ([#48682]).
- Set Cmake version requirement to be at least 3.22
- Accommodate renaming dependencies in specfile.
- Disable jldownload by just running true
- Add fix-dependencies-checksums.patch
* Fix checksum checks for suitesparse aarch64. Sources are fetched from the same source.
* Fix checksum checks for libLLVM_jll
* It's checking for the checksums and it is also trying to fetch them from the internet
and idk what's the point of having the full julia tarball.
- Fix build
* use bundled suitesparse. comment out system suitesparse build requirement
* comment out openblas development dependencies. use bundled openblas.
* comment out lapack development dependencies. use bundled lapack.
* move openblas build away from the actual make build.
this ensures that it's installed properly because doing otherwise will
skip the install of the dependencies. weird but it works.
- Update specfile for bundled LLVM
- Add missing build requirements for bundled llvm 15
- Fix aarch64 build. it needs to download a source that can just be copied which is
SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
-------------------------------------------------------------------
Sun Feb 11 05:19:11 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Use python3 instead of python. Python 2.x is EOL-ed. Addresses bsc#1219740
-------------------------------------------------------------------
Sat Dec 30 04:16:58 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Set suitesparse requirement to 7.2.1 and libcholmod to 5.x.x
-------------------------------------------------------------------
Thu Dec 28 12:58:24 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Add Obsoletes to obsolete older versions for julia and its subpackages.
-------------------------------------------------------------------
Thu Dec 28 06:43:48 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Enable only tier 1 architectures
- Add disable-doc-gen-in-makefile.patch
- Add disable-download-of-unicode-for-doc-gen.patch
- Add UnicodeData.txt
- Add julia-remove-libcholmod_cuda.patch
- Add julia.keyring
- Add julia-1.10.0-full.tar.gz.asc
- Update julia-hardcoded-libs.patch
- Update specfile and enable v3 CPU optimizations on x86_64 architecture
- Update to version 1.10.0:
* New language features
- JuliaSyntax.jl is now used as the default parser, providing better diagnostics and faster
parsing. Set environment variable `JULIA_USE_FLISP_PARSER` to `1` to switch back to the old
parser if necessary (and if you find this necessary, please file an issue).
- `⥺` (U+297A, `\leftarrowsubset`) and `⥷` (U+2977, `\leftarrowless`) may now be used as
binary operators with arrow precedence.
* Language changes
- When a task forks a child, the parent task's task-local RNG (random number generator) is no longer affected. The
seeding of child based on the parent task also takes a more disciplined approach to collision resistance, using a
design based on the SplitMix and DotMix splittable RNG schemes.
- A new more-specific rule for methods resolves ambiguities containing Union{} in favor of
the method defined explicitly to handle the Union{} argument. This makes it possible to
define methods to explicitly handle Union{} without the ambiguities that commonly would
result previously. This also lets the runtime optimize certain method lookups in a way
that significantly improves load and inference times for heavily overloaded methods that
dispatch on Types (such as traits and constructors).
- The "h bar" `ℏ` (`\hslash` U+210F) character is now treated as equivalent to `ħ` (`\hbar` U+0127).
- The `@simd` macro now has more limited and clearer semantics: it only enables reordering and contraction
of floating-point operations, instead of turning on all "fastmath" optimizations.
If you observe performance regressions due to this change, you can recover previous behavior
with `@fastmath @simd`,
if you are OK with all the optimizations enabled by the `@fastmath` macro.
- When a method with keyword arguments is displayed in the stack trace view, the textual
representation of the keyword arguments' type is simplified using the new
`@Kwargs{key1::Type1, ...}` macro syntax.
* Compiler/Runtime improvements
- The mark phase of the garbage collector is now multi-threaded.
- [JITLink](https://llvm.org/docs/JITLink.html) is enabled by default on Linux aarch64 when Julia
is linked to LLVM 15 or later versions.
This should resolve many segmentation faults previously observed on this platform.
- The precompilation process now uses pidfile locks and orchestrates multiple julia processes to only have one proces
spend effort precompiling while the others wait. Previously all would do the work and race to overwrite the cache
files.
* Command-line option changes
- New option `--gcthreads` to set how many threads will be used by the garbage collector.
The default is `N/2` where `N` is the number of worker threads (`--threads`) used by Julia.
* Build system changes
- SparseArrays and SuiteSparse are no longer included in the default system image, so the core
language no longer contains GPL libraries. However, these libraries are still included
alongside the language in the standard binary distribution
* New library functions
- `tanpi` is now defined. It computes tan(π*x) more accurately than `tan(pi*x)`.
- `fourthroot(x)` is now defined in `Base.Math` and can be used to compute the fourth root of `x`.
It can also be accessed using the unicode character `∜`, which can be typed by `\fourthroot<tab>`.
- `Libc.memmove`, `Libc.memset`, and `Libc.memcpy` are now defined, whose functionality matches that of their respective C calls.
- `Base.isprecompiled(pkg::PkgId)` has been added, to identify whether a package has already been precompiled.
* New library features
- `binomial(x, k)` now supports non-integer `x`.
- A `CartesianIndex` is now treated as a "scalar" for broadcasting.
- `printstyled` now supports italic output.
- `parent` and `parentindices` support `SubString`s.
- `replace(string, pattern...)` now supports an optional `IO` argument to
write the output to a stream rather than returning a string.
- `startswith` now supports seekable `IO` streams.
* Standard library changes
- The `initialized=true` keyword assignment for `sortperm!` and `partialsortperm!`
is now a no-op. It previously exposed unsafe behavior.
- Printing integral `Rational`s will skip the denominator in `Rational`-typed IO context (e.g. in arrays).
* Package Manager
- `Pkg.precompile` now accepts `timing` as a keyword argument which displays per package timing
information for precompilation (e.g. `Pkg.precompile(timing=true)`).
-------------------------------------------------------------------
Mon Dec 25 13:32:14 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Update specfile:
* symlink libLLVM-14jl.so to standard LD_LIBRARY_PATH
* new Recommends:
- libcurl-devel for new recommends
- openssh-clients for ssh operations
- curl for any curl operation
-------------------------------------------------------------------
Mon Dec 25 09:25:09 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Combine these patches to julia-hardcoded-libs.patch and delete:
* libblastrampoline-hardcoded-libs.patch
* libgit2-libssh2-hardcoded-libs.patch
* mbedtls-hardcoded-libs.patch
- Slight adjustment of specfile for updated patch
- Requires mbedtls-devel, libgit2-devel and libssh2-devel for dlopen
-------------------------------------------------------------------
Tue Dec 19 02:34:10 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Remove unsatisfactory architectures that does not guaranteed to build.
It seems x86_64 is the guaranteed to work anyway.
-------------------------------------------------------------------
Tue Dec 19 02:28:16 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Specfile cleanup:
* specify more dependencies
- openlibm-devel
- julia-devel or julia-compat-devel which provides libjulia.so
-------------------------------------------------------------------
Mon Dec 18 22:35:16 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Some dependencies require to be explicit since Julia uses dlopen
on it's stdlib and other julia scripts
-------------------------------------------------------------------
Mon Dec 18 14:24:24 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- Specfile cleanup:
* Exclude now only bundled libs
- LLVM, uv, ccalltest, llvmcalltest, openblas with INTERFACE64 enabled,
libjulia-internal and libjulia-codegen
* Fdupe only /usr/share/julia.
* Define some dependencies that are dlopened
-------------------------------------------------------------------
Mon Dec 18 06:20:48 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
- There should be a package libjulia1.
- CFLAGS and CXXFLAGS use provided %optflags.
- libjulia-compat1 should provide libjulia1 to fulfill soname shlib naming policies.
- Remove unused rpmlints:
* devel-dependency
- Turn all eol encondings to unix to all files
- Add rpmlint for "W: hidden-file-or-dir /usr/share/julia/stdlib/v1.9/Pkg/test/test_packages/AugmentedPlatform/.pkg"
That contains julia scripts. Leave it alone.
- fdupes at the end of the install section.
-------------------------------------------------------------------
Wed Dec 13 00:36:26 UTC 2023 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>

51
julia.keyring Normal file
View File

@@ -0,0 +1,51 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFXxFlcBEADQDEBFlzoyehPuk13Ct928WwBvb0q9OKyjz2NlYq3sL5ReTbQB
9P5hyl68q5iJ6QTjKEaxr+Kmjhib9dQGZhtBXRa9q185Fdav48rS9rDKR5/aPXNi
4aA0BSp7fHIDrTUGOUMB5TFpVZil+Sz4llpPKDlgG70dn3ZLBznJQKUXJWhxrheG
ogUK4W3WAdBBPDVraPjBjvTTSrhoOBJh/oNib3J6xTIaUMhOFz+Vuq05BZI9UO6n
OsE3dSW7X7dvqjcN3Ti7TgbJD5d4iOsQl8NhqItyS8ZULV8TPGOuwitoWxqgFIAL
5bhM9Of4xOE0+rmgke1dKmMkq3cu6yCEFypqyxwShexe+1Mvx4Tn4/OqC7wFVpTA
IH2ys7NsVcoLtZGqlBQnbXFmIu9ay51Zb4wwbJ5Qr9Rfx5xPvJoOVUpP/0I8+vlI
CmBkP6vs9vMCCKcreP0FpjCTSRApv9IXuwjumOMb6P0GJPOuFVfsy4849ONPC/yM
dMbeopi/BWfHu/Nqt7pqY210jncsdBPlPy7LvvhIkbpeZHQDoQVDPX88ZylhqKTy
gpWPBT5ezJ5ib0nSvYIZjMOMlMWxDaNDBGZlyHizVFwLZk6qHWM7I2WbJGvNgBTv
0dX9jBIDhdKdSZjc3wxh+nqZQg1l8xOOx9yCLSiBL1OHf4PYqJudL09AUwARAQAB
tDNKdWxpYSAoQmluYXJ5IHNpZ25pbmcga2V5KSA8YnVpbGRib3RAanVsaWFsYW5n
Lm9yZz6JAjgEEwECACIFAlXxFlcCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheA
AAoJEGbjx9wD1uSVg78QAJZUeygDHj1zTxt+8UAm4TMu0nWmcPjSzTGj5Wt4Gtec
HlWsXTOvFbABv8r3vzD2W1Bi0D0UcUucBy3Jf0nrUBWY89VTREcG/EWsF2SwSB7H
cL3pu+vcdLiVtRGI4AiSoZz2CXc4vHY0X/3TlPejcO0UU8A0Ukth/cX1ZqCjKP8T
ciXy89X4mlRAsAXapkHxiO+bscTd/VdWaPaUx8/TxeFoPZFB/0FIeJHYbI1chKPd
vAtFYLpB89d8zbQYgISM6oc/f1j0CQR6JdHGoAGP9Wd8wRz+mDT3WzOqL4jXctcA
CQUKGgYkOW8OEFBlfUACZK5uFxWMktN8//IlzczCTbYb9Z89UeeF7oaXfSZMFwiF
kxseUGCceXb5Kqj3fZKmmUstAEzycyNuCeXG1KXyAz1mg/ihq/rzB11vQQjY4WYJ
rIoUecRN3btSex6jcdOxAIOeGcyfigT7NMgplFXXkbuux2N7qtOkLUNx80DMOggK
tnSP60GkO1xzJLi3EHtaDVPU59KpeXjyEsNB2ngc5+LwHwbYGvaaZaFXFm7oCmM7
xG88EU14mCLZbpGleD6cmpVAprFSIXV0Z0xm6pdH9XBCT4UJ8tFXTrJsc1dYd+mw
eAwCYZ38e95kqrYrRbhjOOAKEtf3t4VnrsifbTfTVclUbsrSXVTQdHoiMlODc/WX
uQINBFXxFlcBEADNmFCh53NJ+8CQSzQda/efBX+H/SCj2b3vIYJXY2nR9h4IQ7UV
/AU5sUB/bpIN3nwwdcILYSm2oJGP8fZ8Zf46XliUOK8+yD8ApDg6okl3R1G+E9Qk
/EN49BCeXx9uT5vHpcHWkBvKmqmjUJ283i6q3QT5qzbkCGGUQ7SyhU1ywbjYIQi/
HLJpntqz44LrM+vfGUAa+CJld3DyzAm66KFSRbDU12XPE948MxUDQ1NgY9hJIlfm
ud/ShKakfQoEsLiTkUbEY7Vc19s2+aM3S1zeRfsatuayPuEUsnuz42wKWSdPNGyJ
TkLdWz46vSgN9wpe0OLoWxsuomaViRaNFDSK7Uo+AGjWcjFNlehFlW/ELji1JbS5
f5EAD1A1I2RJvLHyri3xFJtM9qbGiA3ZIfcVXq5RxAOehDPCcKzBS4w37D2vLBOQ
Xa+ExTJxwiCnMPuo7acsfkyleakAe82L/fAoVWdPcFSjq3KFvkpGpTlvvh2jwhoW
AgDGu77K9T1rHjj7t2GjuR71RVc4r0CP9iF3rAPmq/FapONW1Pz0aom7XLBZt8Zq
4wsPsGaAECmwi07bE6Vr9nqCeQb7XmjVucVJP+VXDpOJzt4J5zSzTCWGyj47/K7a
Rlz9KtYmY0s4sKnx3sjKpC8xMXaLgvSjudrQCZ/sohKRayKGAMI2p71GbQARAQAB
iQIfBBgBAgAJBQJV8RZXAhsMAAoJEGbjx9wD1uSV6+oP/3MCyMWEBiu73HVI2dS2
hDct/E9fDkpB6o/HEGhdNFTeeb/L7GqcQACJDtBDNVtMu0WhCgKeteHXM0KMy55f
6HAQEVnWhGSyR4KksV93RPZvUO+zzX5M7F2LiI59MSruKAYTC0kXbjcu9aQAn+kJ
EPHiHwsTzRkWh90q54/B2NQ6oVAHgnMIeh32OBdFMNHOnP+n1zu/+Wd4miC3fR9V
tmsVrOS8WtozdEC6TmquYswQ/gT6c0afCZSlNF/ZPPrXGGdD6t9WTJntfYB1rbEk
E/9WpaUgpKpxXQEOMzMAm+2yBoYnCpXzvbY6fzNWfOg6DJ65t0rkrCwDRHLH1grA
61OQb0Ou8LQnrFGox8L394sFebIoaBUk2Vhw5LH78X6g1f7Mj6j9Er0YSabVVpHh
ncMYflOeswrV4C1oP5UvL7K3qtCixUU4LQ4XqmioQey8AnrCdJ7S5QeyP1n5vU3e
Nz1JHCcH4/e698CuIoCZa86Edmo3S0O2hhiC5qslf5u1pdndlmbrgsWpBH5kJ7mI
edeA2ND/KrLlllE7NImLdlrciShctFP1ciqqHtTebQ+5MH17ObOhSptUDEt5LjZt
3YXZtQ+C/UmfkC+QVUdWTQ4cWUCNtuzLP+PW3o1AQHmijWbaECq5yMRVlr7JuxPr
Lr+fAJHZvbYCQjMTkZYScgYU
=XN/B
-----END PGP PUBLIC KEY BLOCK-----

View File

@@ -1,7 +1,7 @@
#
# spec file for package julia
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,111 +16,284 @@
#
# We must not strip binaries in julia, since it can lead to many problems.
# For example, see:
#
# https://github.com/JuliaLang/julia/issues/17941
%undefine _build_create_debug
%define __arch_install_post export NO_BRP_STRIP_DEBUG=true
%global __provides_exclude_from ^%{_libdir}/%{name}/.*\\.so$
%global julia_march native
# If not Tumbleweed. Leap 15.6 seems to have trouble with libpthread
%if 0%{?suse_version} < 1600
%global __julia_opts NO_GIT=1 DEPS_GIT=0 BUILD_LLD=1 BUILD_LLDB=1 USE_BINARYBUILDER=0 USE_SYSTEM_CSL=1 USE_SYSTEM_LLVM=0 USE_SYSTEM_LLD=0 OPENBLAS_USE_THREAD=0 OPENBLAS_TARGET_ARCH=NEHALEM OPENBLAS_SYMBOLSUFFIX="%{?__isa_bits}_" OPENBLAS_LIBNAMESUFFIX="%{?__isa_bits}_" OPENBLAS_CFLAGS="${CFLAGS}" LIBBLAS=-lopenblas64_ LIBBLASNAME=libopenblas64_ LIBLAPACK=-lopenblas64_ LIBLAPACKNAME=libopenblas64_ SUITESPARSE_LIB="-lumfpack64_ -lcholmod64_ -lamd64_ -lcamd64_ -lcolamd64_ -lspqr64_" USE_SYSTEM_LIBUNWIND=0 USE_SYSTEM_PCRE=0 USE_SYSTEM_BLAS=0 USE_SYSTEM_LAPACK=0 USE_SYSTEM_LIBBLASTRAMPOLINE=1 USE_SYSTEM_GMP=0 USE_SYSTEM_MPFR=0 USE_SYSTEM_LIBSUITESPARSE=0 USE_SYSTEM_SUITESPARSE=0 USE_INTEL_JITEVENTS=0 USE_SYSTEM_LIBWHICH=1 USE_SYSTEM_DSFMT=0 USE_SYSTEM_LIBUV=0 USE_SYSTEM_UTF8PROC=1 USE_SYSTEM_LIBGIT2=0 USE_SYSTEM_LIBSSH2=0 USE_SYSTEM_MBEDTLS=0 USE_SYSTEM_CURL=1 USE_SYSTEM_PATCHELF=1 USE_SYSTEM_ZLIB=1 USE_SYSTEM_P7ZIP=1 USE_SYSTEM_OPENLIBM=1 USE_BLAS64=1 JLDFLAGS="$LDFLAGS" USE_BINARYBUILDER_BLASTRAMPOLINE=0 USE_BINARYBUILDER_CURL=0 USE_BINARYBUILDER_DSFMT=0 USE_BINARYBUILDER_GMP=0 USE_BINARYBUILDER_LIBGIT2=0 USE_BINARYBUILDER_LIBSSH2=0 USE_BINARYBUILDER_LIBSUITESPARSE=0 USE_BINARYBUILDER_LIBTRACYCLIENT=0 USE_BINARYBUILDER_LIBUNWIND=0 USE_BINARYBUILDER_LIBUV=0 USE_BINARYBUILDER_LLVM=0 USE_BINARYBUILDER_MBEDTLS=0 USE_BINARYBUILDER_MPFR=0 USE_BINARYBUILDER_OPENBLAS=0 USE_BINARYBUILDER_OPENLIBM=0 USE_BINARYBUILDER_P7ZIP=0 USE_BINARYBUILDER_PCRE=0 USE_BINARYBUILDER_ZLIB=0 VERBOSE=0
%else
%global __julia_opts NO_GIT=1 DEPS_GIT=0 BUILD_LLD=1 BUILD_LLDB=1 USE_BINARYBUILDER=0 USE_SYSTEM_CSL=1 USE_SYSTEM_LLVM=0 USE_SYSTEM_LLD=0 OPENBLAS_SYMBOLSUFFIX="%{?__isa_bits}_" OPENBLAS_LIBNAMESUFFIX="%{?__isa_bits}_" OPENBLAS_CFLAGS="${CFLAGS}" LIBBLAS=-lopenblas64_ LIBBLASNAME=libopenblas64_ LIBLAPACK=-lopenblas64_ LIBLAPACKNAME=libopenblas64_ SUITESPARSE_LIB="-lumfpack64_ -lcholmod64_ -lamd64_ -lcamd64_ -lcolamd64_ -lspqr64_" USE_SYSTEM_LIBUNWIND=0 USE_SYSTEM_PCRE=0 USE_SYSTEM_BLAS=0 USE_SYSTEM_LAPACK=0 USE_SYSTEM_LIBBLASTRAMPOLINE=1 USE_SYSTEM_GMP=0 USE_SYSTEM_MPFR=0 USE_SYSTEM_LIBSUITESPARSE=0 USE_SYSTEM_SUITESPARSE=0 USE_INTEL_JITEVENTS=0 USE_SYSTEM_LIBWHICH=1 USE_SYSTEM_DSFMT=0 USE_SYSTEM_LIBUV=0 USE_SYSTEM_UTF8PROC=1 USE_SYSTEM_LIBGIT2=0 USE_SYSTEM_LIBSSH2=0 USE_SYSTEM_MBEDTLS=0 USE_SYSTEM_CURL=1 USE_SYSTEM_PATCHELF=1 USE_SYSTEM_ZLIB=1 USE_SYSTEM_P7ZIP=1 USE_SYSTEM_OPENLIBM=1 USE_BLAS64=1 JLDFLAGS="$LDFLAGS" USE_BINARYBUILDER_BLASTRAMPOLINE=0 USE_BINARYBUILDER_CURL=0 USE_BINARYBUILDER_DSFMT=0 USE_BINARYBUILDER_GMP=0 USE_BINARYBUILDER_LIBGIT2=0 USE_BINARYBUILDER_LIBSSH2=0 USE_BINARYBUILDER_LIBSUITESPARSE=0 USE_BINARYBUILDER_LIBTRACYCLIENT=0 USE_BINARYBUILDER_LIBUNWIND=0 USE_BINARYBUILDER_LIBUV=0 USE_BINARYBUILDER_LLVM=0 USE_BINARYBUILDER_MBEDTLS=0 USE_BINARYBUILDER_MPFR=0 USE_BINARYBUILDER_OPENBLAS=0 USE_BINARYBUILDER_OPENLIBM=0 USE_BINARYBUILDER_P7ZIP=0 USE_BINARYBUILDER_PCRE=0 USE_BINARYBUILDER_ZLIB=0 VERBOSE=0
%endif
# List all bundled libraries.
%global _privatelibs lib(LLVM-.*|ccalltest|dSFMT|git2|llvmcalltest|openlibm|suitesparse_wrapper|mbedcrypto|mbedtls|mbedx509|uv)\\.so.*
%global _privatelibs lib(ssh.*|pcre.*|dSFMT.*|gmp.*|mpfr.*|git.*|mbed.*|nghttp.*||LLVM-.*|unwind*|ccalltest|llvmcalltest|uv|openblas.*|lapack.*|sys|julia.*|amd|btf|camd|ccolamd|cholmod|colamd|cxsparse|graphblas|klu|klu_cholmod|lagraph|lagraphx|ldl|paru|rbio|spex|spqr|suitesparse_mongoose|suitesparseconfig|umfpack)\\.so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
%define libjulia_sover_major 1
%define libjulia_sover_minor 9
%define libjulia_sover_minor 10
%define _julia_llvm_version 15.0.7-10
%if "@BUILD_FLAVOR@%{nil}" == "compat"
%define compat_mode 1
%else
%define compat_mode 0
%endif
%if 0%{?compat_mode}
%define libname libjulia-compat%{libjulia_sover_major}_%{libjulia_sover_minor}
%else
%define libname libjulia%{libjulia_sover_major}_%{libjulia_sover_minor}
%endif
# LTO currently makes building blastrampoline and Julia itself fail
# It is not enabled upstream anyway
%global _lto_cflags %nil
Version: 1.9.4
Version: 1.10.5
Release: 0
URL: http://julialang.org/
Source0: https://github.com/JuliaLang/julia/releases/download/v%{version}/julia-%{version}-full.tar.gz
Source1: julia-rpmlintrc
Source1: https://github.com/JuliaLang/julia/releases/download/v%{version}/julia-%{version}-full.tar.gz.asc
Source2: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/keys/pgp/3673DF529D9049477F76B37566E3C7DC03D6E495.asc?ref_type=heads#/julia.keyring
Source3: https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt
Source4: julia-rpmlintrc
Source5: https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl/releases/download/CompilerSupportLibraries-v1.1.1+0/CompilerSupportLibraries.v1.1.1.x86_64-linux-gnu-libgfortran5.tar.gz#/CompilerSupportLibraries.v1.1.1+0.x86_64-linux-gnu-libgfortran5.tar.gz
Source6: https://github.com/JuliaBinaryWrappers/LibUV_jll.jl/releases/download/LibUV-v2.0.1+14/LibUV.v2.0.1.x86_64-linux-gnu.tar.gz#/LibUV.v2.0.1+14.x86_64-linux-gnu.tar.gz
Source7: https://github.com/JuliaBinaryWrappers/LibUnwind_jll.jl/releases/download/LibUnwind-v1.5.0+5/LibUnwind.v1.5.0.x86_64-linux-gnu.tar.gz#/LibUnwind.v1.5.0+5.x86_64-linux-gnu.tar.gz
Source8: https://github.com/JuliaBinaryWrappers/OpenLibm_jll.jl/releases/download/OpenLibm-v0.8.1+2/OpenLibm.v0.8.1.x86_64-linux-gnu.tar.gz#/OpenLibm.v0.8.1+2.x86_64-linux-gnu.tar.gz
Source9: https://github.com/JuliaBinaryWrappers/dSFMT_jll.jl/releases/download/dSFMT-v2.2.4+4/dSFMT.v2.2.4.x86_64-linux-gnu.tar.gz#/dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz
Source10: https://github.com/JuliaBinaryWrappers/libLLVM_jll.jl/releases/download/libLLVM-v15.0.7+10/libLLVM.v15.0.7.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz#/libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
Source11: https://github.com/JuliaBinaryWrappers/LLD_jll.jl/releases/download/LLD-v15.0.7+10/LLD.v15.0.7.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz#/LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz
Source12: https://github.com/JuliaBinaryWrappers/PCRE2_jll.jl/releases/download/PCRE2-v10.42.0+1/PCRE2.v10.42.0.x86_64-linux-gnu.tar.gz#/PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz
Source13: https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v0.3.23+4/OpenBLAS.v0.3.23.x86_64-linux-gnu-libgfortran5.tar.gz#/OpenBLAS.v0.3.23+4.x86_64-linux-gnu-libgfortran5.tar.gz
Source14: https://github.com/JuliaBinaryWrappers/GMP_jll.jl/releases/download/GMP-v6.2.1+6/GMP.v6.2.1.x86_64-linux-gnu-cxx11.tar.gz#/GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz
Source15: https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl/releases/download/MbedTLS-v2.28.2+1/MbedTLS.v2.28.2.x86_64-linux-gnu.tar.gz#/MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz
Source16: https://github.com/JuliaBinaryWrappers/LibSSH2_jll.jl/releases/download/LibSSH2-v1.11.0+1/LibSSH2.v1.11.0.x86_64-linux-gnu.tar.gz#/LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz
Source17: https://github.com/JuliaBinaryWrappers/nghttp2_jll.jl/releases/download/nghttp2-v1.52.0+1/nghttp2.v1.52.0.x86_64-linux-gnu.tar.gz#/nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz
Source18: https://github.com/JuliaBinaryWrappers/LibCURL_jll.jl/releases/download/LibCURL-v8.4.0+0/LibCURL.v8.4.0.x86_64-linux-gnu.tar.gz#/LibCURL.v8.4.0+0.x86_64-linux-gnu.tar.gz
Source19: https://github.com/JuliaBinaryWrappers/LibGit2_jll.jl/releases/download/LibGit2-v1.6.4+0/LibGit2.v1.6.4.x86_64-linux-gnu.tar.gz#/LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz
Source20: https://github.com/JuliaBinaryWrappers/MPFR_jll.jl/releases/download/MPFR-v4.2.0+1/MPFR.v4.2.0.x86_64-linux-gnu.tar.gz#/MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz
Source21: https://github.com/JuliaBinaryWrappers/SuiteSparse_jll.jl/releases/download/SuiteSparse-v7.2.1+1/SuiteSparse.v7.2.1.x86_64-linux-gnu.tar.gz#/SuiteSparse.v7.2.1+1.x86_64-linux-gnu.tar.gz
Source22: https://github.com/JuliaBinaryWrappers/Zlib_jll.jl/releases/download/Zlib-v1.2.13+1/Zlib.v1.2.13.x86_64-linux-gnu.tar.gz#/Zlib.v1.2.13+1.x86_64-linux-gnu.tar.gz
Source23: https://github.com/JuliaBinaryWrappers/p7zip_jll.jl/releases/download/p7zip-v17.4.0+2/p7zip.v17.4.0.x86_64-linux-gnu.tar.gz#/p7zip.v17.4.0+2.x86_64-linux-gnu.tar.gz
Source24: https://github.com/JuliaBinaryWrappers/libblastrampoline_jll.jl/releases/download/libblastrampoline-v5.11.0+0/libblastrampoline.v5.11.0.x86_64-linux-gnu.tar.gz#/libblastrampoline.v5.11.0+0.x86_64-linux-gnu.tar.gz
Source25: https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl/releases/download/CompilerSupportLibraries-v1.1.1+0/CompilerSupportLibraries.v1.1.1.aarch64-linux-gnu-libgfortran5.tar.gz#/CompilerSupportLibraries.v1.1.1+0.aarch64-linux-gnu-libgfortran5.tar.gz
Source26: https://github.com/JuliaBinaryWrappers/LibUV_jll.jl/releases/download/LibUV-v2.0.1+14/LibUV.v2.0.1.aarch64-linux-gnu.tar.gz#/LibUV.v2.0.1+14.aarch64-linux-gnu.tar.gz
Source27: https://github.com/JuliaBinaryWrappers/LibUnwind_jll.jl/releases/download/LibUnwind-v1.5.0+5/LibUnwind.v1.5.0.aarch64-linux-gnu.tar.gz#/LibUnwind.v1.5.0+5.aarch64-linux-gnu.tar.gz
Source28: https://github.com/JuliaBinaryWrappers/OpenLibm_jll.jl/releases/download/OpenLibm-v0.8.1+2/OpenLibm.v0.8.1.aarch64-linux-gnu.tar.gz#/OpenLibm.v0.8.1+2.aarch64-linux-gnu.tar.gz
Source29: https://github.com/JuliaBinaryWrappers/dSFMT_jll.jl/releases/download/dSFMT-v2.2.4+4/dSFMT.v2.2.4.aarch64-linux-gnu.tar.gz#/dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz
Source30: https://github.com/JuliaBinaryWrappers/libLLVM_jll.jl/releases/download/libLLVM-v15.0.7+10/libLLVM.v15.0.7.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz#/libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
Source31: https://github.com/JuliaBinaryWrappers/LLD_jll.jl/releases/download/LLD-v15.0.7+10/LLD.v15.0.7.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz#/LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz
Source32: https://github.com/JuliaBinaryWrappers/PCRE2_jll.jl/releases/download/PCRE2-v10.42.0+1/PCRE2.v10.42.0.aarch64-linux-gnu.tar.gz#/PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz
Source33: https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v0.3.23+4/OpenBLAS.v0.3.23.aarch64-linux-gnu-libgfortran5.tar.gz#/OpenBLAS.v0.3.23+4.aarch64-linux-gnu-libgfortran5.tar.gz
Source34: https://github.com/JuliaBinaryWrappers/GMP_jll.jl/releases/download/GMP-v6.2.1+6/GMP.v6.2.1.aarch64-linux-gnu-cxx11.tar.gz#/GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz
Source35: https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl/releases/download/MbedTLS-v2.28.2+1/MbedTLS.v2.28.2.aarch64-linux-gnu.tar.gz#/MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz
Source36: https://github.com/JuliaBinaryWrappers/LibSSH2_jll.jl/releases/download/LibSSH2-v1.11.0+1/LibSSH2.v1.11.0.aarch64-linux-gnu.tar.gz#/LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz
Source37: https://github.com/JuliaBinaryWrappers/nghttp2_jll.jl/releases/download/nghttp2-v1.52.0+1/nghttp2.v1.52.0.aarch64-linux-gnu.tar.gz#/nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz
Source38: https://github.com/JuliaBinaryWrappers/LibCURL_jll.jl/releases/download/LibCURL-v8.4.0+0/LibCURL.v8.4.0.aarch64-linux-gnu.tar.gz#/LibCURL.v8.4.0+0.aarch64-linux-gnu.tar.gz
Source39: https://github.com/JuliaBinaryWrappers/LibGit2_jll.jl/releases/download/LibGit2-v1.6.4+0/LibGit2.v1.6.4.aarch64-linux-gnu.tar.gz#/LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz
Source40: https://github.com/JuliaBinaryWrappers/MPFR_jll.jl/releases/download/MPFR-v4.2.0+1/MPFR.v4.2.0.aarch64-linux-gnu.tar.gz#/MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz
Source41: https://github.com/JuliaBinaryWrappers/SuiteSparse_jll.jl/releases/download/SuiteSparse-v7.2.1+1/SuiteSparse.v7.2.1.aarch64-linux-gnu.tar.gz#/SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
Source42: https://github.com/JuliaBinaryWrappers/Zlib_jll.jl/releases/download/Zlib-v1.2.13+1/Zlib.v1.2.13.aarch64-linux-gnu.tar.gz#/Zlib.v1.2.13+1.aarch64-linux-gnu.tar.gz
Source43: https://github.com/JuliaBinaryWrappers/p7zip_jll.jl/releases/download/p7zip-v17.4.0+2/p7zip.v17.4.0.aarch64-linux-gnu.tar.gz#/p7zip.v17.4.0+2.aarch64-linux-gnu.tar.gz
Source44: https://github.com/JuliaBinaryWrappers/libblastrampoline_jll.jl/releases/download/libblastrampoline-v5.11.0+0/libblastrampoline.v5.11.0.aarch64-linux-gnu.tar.gz#/libblastrampoline.v5.11.0+0.aarch64-linux-gnu.tar.gz
Source45: https://github.com/JuliaBinaryWrappers/CompilerSupportLibraries_jll.jl/releases/download/CompilerSupportLibraries-v1.1.1+0/CompilerSupportLibraries.v1.1.1.powerpc64le-linux-gnu-libgfortran5.tar.gz#/CompilerSupportLibraries.v1.1.1+0.powerpc64le-linux-gnu-libgfortran5.tar.gz
Source46: https://github.com/JuliaBinaryWrappers/LibUV_jll.jl/releases/download/LibUV-v2.0.1+14/LibUV.v2.0.1.powerpc64le-linux-gnu.tar.gz#/LibUV.v2.0.1+14.powerpc64le-linux-gnu.tar.gz
Source47: https://github.com/JuliaBinaryWrappers/LibUnwind_jll.jl/releases/download/LibUnwind-v1.5.0+5/LibUnwind.v1.5.0.powerpc64le-linux-gnu.tar.gz#/LibUnwind.v1.5.0+5.powerpc64le-linux-gnu.tar.gz
Source48: https://github.com/JuliaBinaryWrappers/OpenLibm_jll.jl/releases/download/OpenLibm-v0.8.1+2/OpenLibm.v0.8.1.powerpc64le-linux-gnu.tar.gz#/OpenLibm.v0.8.1+2.powerpc64le-linux-gnu.tar.gz
Source49: https://github.com/JuliaBinaryWrappers/dSFMT_jll.jl/releases/download/dSFMT-v2.2.4+4/dSFMT.v2.2.4.powerpc64le-linux-gnu.tar.gz#/dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz
Source50: https://github.com/JuliaBinaryWrappers/libLLVM_jll.jl/releases/download/libLLVM-v15.0.7+10/libLLVM.v15.0.7.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz#/libLLVM.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
Source51: https://github.com/JuliaBinaryWrappers/LLD_jll.jl/releases/download/LLD-v15.0.7+10/LLD.v15.0.7.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz#/LLD.v15.0.7+10.powerpc64le-linux-gnu-cxx11-llvm_version+15.tar.gz
Source52: https://github.com/JuliaBinaryWrappers/PCRE2_jll.jl/releases/download/PCRE2-v10.42.0+1/PCRE2.v10.42.0.powerpc64le-linux-gnu.tar.gz#/PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz
Source53: https://github.com/JuliaBinaryWrappers/OpenBLAS_jll.jl/releases/download/OpenBLAS-v0.3.23+4/OpenBLAS.v0.3.23.powerpc64le-linux-gnu-libgfortran5.tar.gz#/OpenBLAS.v0.3.23+4.powerpc64le-linux-gnu-libgfortran5.tar.gz
Source54: https://github.com/JuliaBinaryWrappers/GMP_jll.jl/releases/download/GMP-v6.2.1+6/GMP.v6.2.1.powerpc64le-linux-gnu-cxx11.tar.gz#/GMP.v6.2.1+6.powerpc64le-linux-gnu-cxx11.tar.gz
Source55: https://github.com/JuliaBinaryWrappers/MbedTLS_jll.jl/releases/download/MbedTLS-v2.28.2+1/MbedTLS.v2.28.2.powerpc64le-linux-gnu.tar.gz#/MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz
Source56: https://github.com/JuliaBinaryWrappers/LibSSH2_jll.jl/releases/download/LibSSH2-v1.11.0+1/LibSSH2.v1.11.0.powerpc64le-linux-gnu.tar.gz#/LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz
Source57: https://github.com/JuliaBinaryWrappers/nghttp2_jll.jl/releases/download/nghttp2-v1.52.0+1/nghttp2.v1.52.0.powerpc64le-linux-gnu.tar.gz#/nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz
Source58: https://github.com/JuliaBinaryWrappers/LibCURL_jll.jl/releases/download/LibCURL-v8.4.0+0/LibCURL.v8.4.0.powerpc64le-linux-gnu.tar.gz#/LibCURL.v8.4.0+0.powerpc64le-linux-gnu.tar.gz
Source59: https://github.com/JuliaBinaryWrappers/LibGit2_jll.jl/releases/download/LibGit2-v1.6.4+0/LibGit2.v1.6.4.powerpc64le-linux-gnu.tar.gz#/LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz
Source60: https://github.com/JuliaBinaryWrappers/MPFR_jll.jl/releases/download/MPFR-v4.2.0+1/MPFR.v4.2.0.powerpc64le-linux-gnu.tar.gz#/MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz
Source61: https://github.com/JuliaBinaryWrappers/SuiteSparse_jll.jl/releases/download/SuiteSparse-v7.2.1+1/SuiteSparse.v7.2.1.powerpc64le-linux-gnu.tar.gz#/SuiteSparse.v7.2.1+1.powerpc64le-linux-gnu.tar.gz
Source62: https://github.com/JuliaBinaryWrappers/Zlib_jll.jl/releases/download/Zlib-v1.2.13+1/Zlib.v1.2.13.powerpc64le-linux-gnu.tar.gz#/Zlib.v1.2.13+1.powerpc64le-linux-gnu.tar.gz
Source63: https://github.com/JuliaBinaryWrappers/p7zip_jll.jl/releases/download/p7zip-v17.4.0+2/p7zip.v17.4.0.powerpc64le-linux-gnu.tar.gz#/p7zip.v17.4.0+2.powerpc64le-linux-gnu.tar.gz
Source64: https://github.com/JuliaBinaryWrappers/libblastrampoline_jll.jl/releases/download/libblastrampoline-v5.11.0+0/libblastrampoline.v5.11.0.powerpc64le-linux-gnu.tar.gz#/libblastrampoline.v5.11.0+0.powerpc64le-linux-gnu.tar.gz
Source100: gmp-6.2.1-arm64-invert_limb.patch
# PATCH-FIX-OPENSUSE julia-env-script-interpreter.patch ronisbr@gmail.com -- Change script interpreted to avoid errors in rpmlint.
Patch1: julia-env-script-interpreter.patch
Patch2: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/e08e1444.patch?ref_type=heads#/new-pass-manager.patch
Patch3: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/959902f1.patch?ref_type=heads#/support-float16-depending-on-llvm-and-platform.patch
Patch4: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/f11bfc6c.patch?ref_type=heads#/use-newpm-asan.patch
Patch5: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/21d4c2f1.patch?ref_type=heads#/llvm-set-of-custom-patches.patch
Patch6: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libunwind-1.6.patch?ref_type=heads#/julia-libunwind-1.9.patch
Patch8: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libgit2-1.7.patch?ref_type=heads#/julia-libgit2-1.7.patch
Patch9: https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-suitesparse-7.patch?ref_type=heads#/julia-suitesparse-7.patch
Patch10: use-system-libuv-correctly.patch
Patch11: openlibm.patch
Patch12: llvm-link-shared.patch
# Adapted from https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-hardcoded-libs.patch?ref_type=heads
# We just remove the julia specific llvm sofile change
Patch13: julia-hardcoded-libs.patch
Patch14: mbedtls-hardcoded-libs.patch
Patch15: libblastrampoline-hardcoded-libs.patch
BuildRequires: arpack-ng-devel >= 3.3.0
BuildRequires: blas-devel
# PATCH-FIX-OPENSUSE disable-doc-gen-in-makefile.patch -- this patch ACTUALLY DISABLES the offline builds 😉
Patch2: disable-doc-gen-in-makefile.patch
# PATCH-FIX-OPENSUSE -- Despite having no network, build looks for UnicodeData.txt (now Source3). Disabled with this patch.
Patch3: disable-download-of-unicode-for-doc-gen.patch
# Based on https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libunwind-1.6.patch?ref_type=heads -- System libunwind compatibility
# Patch4: julia-libunwind-1.9.patch
# Based of https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libcholmod-cuda.patch?ref_type=heads -- we don't have NVIDIA or any CUDA platform by default
Patch5: julia-remove-libcholmod_cuda.patch
# PATCH-FIX-OPENSUSE -- julia hardcodes looking for the libraries
Patch6: openlibm.patch
# PATCH-FIX-OPENSUSE -- Julia packages e.g. LibCURL_jll.jl uses dlopen for libraries
Patch7: julia-hardcoded-libs.patch
# PATCH-FIX-OPENSUSE -- A bug in MPFR which they describe in their INSTALL file. So we have to assist the mpfr.mk that julia uses.
Patch8: mpfr-looking-for-gmp-fix.patch
Patch10: apply-gmp-arm64-invert_limb.patch
BuildRequires: ImageMagick
BuildRequires: autoconf
BuildRequires: ca-certificates
BuildRequires: cmake
BuildRequires: dSFMT-devel
BuildRequires: clang
BuildRequires: cmake >= 3.22
BuildRequires: dos2unix
BuildRequires: double-conversion-devel
BuildRequires: fdupes
BuildRequires: fftw3-threads-devel >= 3.3.4
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: gcc-fortran
BuildRequires: git
BuildRequires: gmp-devel >= 6.1.2
BuildRequires: hicolor-icon-theme
BuildRequires: lapack-devel >= 3.5.0
BuildRequires: libblastrampoline-devel
BuildRequires: libcurl-devel
BuildRequires: libgit2-devel
BuildRequires: libboost_system-devel
BuildRequires: libboost_thread-devel
BuildRequires: pkgconfig(cunit)
BuildRequires: pkgconfig(jansson)
BuildRequires: pkgconfig(libcares)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(libev)
BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(openssl) >= 1.1.1
BuildRequires: pkgconfig(zlib)
# Additional dependencies for libgit2
BuildRequires: fdupes
BuildRequires: gpg2
BuildRequires: libexpat-devel
BuildRequires: pcre2-devel
BuildRequires: perl-Error
BuildRequires: perl-MailTools
BuildRequires: python3-base
BuildRequires: xz
# These lists the supposedly dependencies that are now bundled
# BuildRequires: lapack-devel >= 3.5.0
# BuildRequires: lld15
# BuildRequires: llvm15-devel
# BuildRequires: libcholmod5
# BuildRequires: libuv-devel
# BuildRequires: libopenblas_openmp-devel >= 0.3.5
# BuildRequires: openblas-common-devel
# BuildRequires: blas-devel
# BuildRequires: suitesparse-devel >= 7.2.1
# BuildRequires: libgit2-devel
BuildConflicts: gmp-devel
BuildConflicts: mpfr-devel
# BuildRequires: dSFMT-devel
# BuildRequires: libssh2-devel >= 1.9.0
BuildRequires: libnghttp2-devel
BuildRequires: libopenblas_openmp-devel >= 0.3.5
BuildRequires: libssh2-devel >= 1.9.0
BuildRequires: libunwind-devel >= 1.3.1
BuildRequires: libuv-devel
# BuildRequires: mbedtls-devel
# BuildRequires: pcre2-devel >= 10.31
BuildRequires: fipscheck
BuildRequires: glibc-devel
BuildRequires: hicolor-icon-theme
BuildRequires: libblastrampoline-devel
# BuildRequires: libunwind-devel >= 1.3.1
BuildRequires: libwhich
BuildRequires: lld14
BuildRequires: llvm14-devel
BuildRequires: m4
BuildRequires: mbedtls-devel
BuildRequires: mpfr-devel >= 4.0.2
BuildRequires: make
BuildRequires: memory-constraints
BuildRequires: metis-devel
BuildRequires: ncurses-devel
BuildRequires: openblas-common-devel
BuildRequires: openlibm-devel
BuildRequires: openspecfun-devel
BuildRequires: openssl
BuildRequires: p7zip >= 16
# I am not sure how or why they're different in Leap and Tumbleweed
%if 0%{?suse_version} > 1600
BuildRequires: p7zip
%else
BuildRequires: p7zip-full
%endif
BuildRequires: patchelf >= 0.9
BuildRequires: pcre2-devel >= 10.31
BuildRequires: perl
BuildRequires: python >= 2.5
BuildRequires: readline-devel
BuildRequires: suitesparse-devel >= 5.4.0
BuildRequires: tbb-devel
BuildRequires: update-desktop-files
BuildRequires: utf8proc-devel
BuildRequires: zlib-devel
BuildRequires: valgrind
BuildRequires: valgrind-devel
# Additional Build Requirements needed by LLVM15
BuildRequires: binutils-devel >= 2.21.90
BuildRequires: ccache
BuildRequires: fdupes
BuildRequires: libstdc++-devel
BuildRequires: libvmmalloc-devel
BuildRequires: ninja
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
BuildRequires: python3-Sphinx
BuildRequires: python3-psutil
BuildRequires: python3-setuptools
BuildRequires: pkgconfig(libedit)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(zlib)
Requires: ca-certificates
Requires: p7zip >= 16
Requires: readline
# Libraries used by CompilerSupportLibraries_jll, blastrampoline,
# nghttp2_jll but not detected as they are dlopen()ed but not linked to
%if 0%{?__isa_bits} == 64
BuildRequires: libgcc_s1
BuildRequires: libgfortran5
Requires: libgcc_s.so.1()(64bit)
Requires: libgfortran.so.5()(64bit)
Requires: libgomp.so.1()(64bit)
%else
BuildRequires: libgcc_s1
BuildRequires: libgfortran5
Requires: libgcc_s.so.1
Requires: libgfortran.so.5
Requires: libgomp.so.1
%endif
# Same as the previous comment. But the difference
# is that we applied julia-hardcoded-libs.patch
Requires: openlibm-devel
Requires: libblastrampoline-devel
# Requires: libgit2-devel
# Requires: libnghttp2-devel
# Requires: libssh2-devel
# Requires: mbedtls-devel
# Requires: suitesparse-devel
# Julia requires the devel package as well
# specifically libjulia.so
%if 0%{?compat_mode}
Requires: julia-compat-devel = %{version}
%else
Requires: julia-devel = %{version}
%endif
Requires(post): %{_sbindir}/update-alternatives
Requires(post): %{_sbindir}/ldconfig
Requires(postun):%{_sbindir}/update-alternatives
Requires(postun):%{_sbindir}/ldconfig
Recommends: arpack-ng-devel
Requires(post): /sbin/ldconfig
Requires(postun): %{_sbindir}/update-alternatives
Requires(postun): /sbin/ldconfig
Recommends: curl
Recommends: git
Recommends: gmp-devel
Recommends: mpfr-devel
Recommends: openspecfun-devel
Recommends: pcre2-devel
Recommends: suitesparse-devel
Recommends: openssh-clients
# Recommends: gmp-devel
# Recommends: libcurl-devel
# Recommends: mpfr-devel
# Recommends: openspecfun-devel
# Recommends: pcre2-devel
# Recommends: suitesparse-devel
%if 0%{?compat_mode} == 0
Name: julia
%else
@@ -139,14 +312,20 @@ Group: Development/Languages/Other
Conflicts: julia
Provides: julia = %{version}
%endif
# Since the 32-bit julia package is already being built using MARCH=pentium4,
# which is the most generic flag supported, then the julia-compat mode only
# makes sense for 64-bit architectures.
%if 0%{?compat_mode}
ExclusiveArch: x86_64
%else
ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
%endif
Obsoletes: %{name} < %{version}
# NOTICE: Enabled for now
# Let's not be optimistic towards 32 bit support and other architectures
# openSUSE or Julia cannot guarantee to support, shall we? Only choose
# Tier1 architectures
# libquadmath is disabled in the aarch64 build of gcc. so we cannot
# include that as exclusive arches for now.
# %%if 0%%{?compat_mode}
# ExclusiveArch: x86_64 x86_64_v3
# %%else
# ExclusiveArch: x86_64 x86_64_v3 aarch64
# %%endif
%{?suse_build_hwcaps_libs}
%description
Julia is a high-level, high-performance dynamic programming language for
@@ -157,17 +336,18 @@ library. The library, largely written in Julia itself, also integrates mature,
best-of-breed C and Fortran libraries for linear algebra, random number
generation, signal processing, and string processing.
This package is experimental and by no means supported by upstream. If you want
to use julia, please install juliaup instead.
This package is experimental and by no means supported by upstream. To use
upstream sources, you can use the alternative called juliaup.
%package devel
Summary: Julia development, debugging and testing files
Group: Development/Languages/Other
Requires: %{name} = %{version}
Requires: %{libname} = %{version}
%if 0%{?compat_mode}
Conflicts: julia-devel
Provides: julia-devel = %{version}
%endif
Obsoletes: %{name}-devel < %{version}
%description devel
Contains library symbolic links and header files for developing applications
@@ -176,218 +356,234 @@ debugging version of Julia. This package is normally not needed when programming
in the Julia language, but rather for embedding Julia into external programs or
debugging Julia itself.
%prep
%setup -q -n julia-%{version}
patch -p1 -i %{PATCH1}
# patch -p1 -i %%{PATCH2}
# patch -p1 -i %%{PATCH3}
# patch -p1 -i %%{PATCH4}
# patch -p1 -i %%{PATCH5}
# libunwind 1.6 compatibility
patch -p1 -i %{PATCH6}
# Fix tests with libgit2 1.7
patch -p1 -i %{PATCH8}
# Make.inc puts it in the wrong libpath
# patch -p1 -i %%{PATCH10}
patch -p1 -i %{PATCH11}
patch -p1 -i %{PATCH12}
patch -p1 -i %{PATCH13}
patch -p1 -i %{PATCH14}
patch -p1 -i %{PATCH15}
%ifarch aarch64 %{arm}
# https://github.com/JuliaLang/julia/issues/41613#issuecomment-976535193
sed -i 's#$(eval $(call symlink_system_library,CSL,libquadmath,0))##' base/Makefile
%package -n %{libname}
Summary: Julia shared object libraries
Group: System/Libraries
%if 0%{?compat_mode}
Conflicts: libjulia%{libjulia_sover_major}_%{libjulia_sover_minor}
Provides: libjulia%{libjulia_sover_major}_%{libjulia_sover_minor} = %{version}
%endif
Obsoletes: %{libname} < %{version}
pushd stdlib/srccache
tar -xzf SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz
patch -d JuliaSparse-SparseArrays.jl-37e6e58 -p1 -i %{PATCH9}
rm SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz
tar -czf SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz JuliaSparse-SparseArrays.jl-37e6e58
md5sum SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz | cut -d ' ' -f 1 > ../../deps/checksums/SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz/md5
sha512sum SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz | cut -d ' ' -f 1 > ../../deps/checksums/SparseArrays-37e6e58706a54c5a1b96a17cda7d3e8be8bcb190.tar.gz/sha512
%description -n %{libname}
Contains library files for interacting with Julia through C interfaces.
popd
%prep
%autosetup -p1 -n julia-%{version}
# Work around bug that prompts zlib to be downloaded even when not used
# https://github.com/JuliaLang/julia/pull/42524/files#r734972945
sed "s/ \$(build_prefix)\\/manifest\\/zlib//" -i deps/llvm.mk
# Copy https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt to deps/srccache
cp -v %{SOURCE3} deps/srccache/UnicodeData-13.0.0.txt
# All bundled sources. Full.tar.gz is not full.tar.gz now eh?
cp -v %{SOURCE5} deps/srccache/
cp -v %{SOURCE6} deps/srccache/
cp -v %{SOURCE7} deps/srccache/
cp -v %{SOURCE8} deps/srccache/
cp -v %{SOURCE9} deps/srccache/
cp -v %{SOURCE10} deps/srccache/
cp -v %{SOURCE11} deps/srccache/
cp -v %{SOURCE12} deps/srccache/
cp -v %{SOURCE13} deps/srccache/
cp -v %{SOURCE14} deps/srccache/
cp -v %{SOURCE15} deps/srccache/
cp -v %{SOURCE16} deps/srccache/
cp -v %{SOURCE17} deps/srccache/
cp -v %{SOURCE18} deps/srccache/
cp -v %{SOURCE19} deps/srccache/
cp -v %{SOURCE20} deps/srccache/
cp -v %{SOURCE21} deps/srccache/
cp -v %{SOURCE22} deps/srccache/
cp -v %{SOURCE23} deps/srccache/
cp -v %{SOURCE24} deps/srccache/
cp -v %{SOURCE25} deps/srccache/
cp -v %{SOURCE25} deps/srccache/
cp -v %{SOURCE26} deps/srccache/
cp -v %{SOURCE27} deps/srccache/
cp -v %{SOURCE28} deps/srccache/
cp -v %{SOURCE29} deps/srccache/
cp -v %{SOURCE30} deps/srccache/
cp -v %{SOURCE31} deps/srccache/
cp -v %{SOURCE32} deps/srccache/
cp -v %{SOURCE33} deps/srccache/
cp -v %{SOURCE34} deps/srccache/
cp -v %{SOURCE35} deps/srccache/
cp -v %{SOURCE36} deps/srccache/
cp -v %{SOURCE37} deps/srccache/
cp -v %{SOURCE38} deps/srccache/
cp -v %{SOURCE39} deps/srccache/
cp -v %{SOURCE40} deps/srccache/
cp -v %{SOURCE41} deps/srccache/
cp -v %{SOURCE42} deps/srccache/
cp -v %{SOURCE43} deps/srccache/
cp -v %{SOURCE44} deps/srccache/
cp -v %{SOURCE100} deps/patches/
# JLDOWNLOAD SHOULD BE DISABLED IF WE HAVE THE FULL TARBALL (NOT USEFUL FOR OPENSUSE)
echo "true" | tee deps/tools/jldownload
# JLCHECKSUM SHOULD BE DISABLED IF WE HAVE THE SOURCES (NOT USEFUL FOR OPENSUSE)
echo "true" | tee deps/tools/jlchecksum
%build
export CC=clang
export CXX=clang++
export CFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
export CXXFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
%if 0%{?compat_mode} == 0
%ifarch x86_64
%define julia_march core2
%endif
%ifarch %{ix86}
%define julia_march pentium4
%endif
%ifarch aarch64
%define julia_march armv8-a
%endif
%ifarch armv7l armv7hl
%define julia_march armv7-a
%endif
%ifarch armv6l armv6hl
%define julia_march armv6
%endif
%ifarch ppc64le
%define julia_march ppc64le
%endif
# Needed when USE_SYSTEM_CSL=1
# https://github.com/JuliaLang/julia/issues/39637
unlink %{_builddir}/%{buildsubdir}/build/usr/lib || true
mkdir -p %{_builddir}/%{buildsubdir}/build/%{_libdir}/
%if 0%{?suse_version} > 1600
ln -sf %{_libdir}/libgcc_s.so.1 %{_builddir}/%{buildsubdir}/build/%{_libdir}/libgcc_s.so.1
%else
# compat_mode is only defined for 64-bit architecture.
%define julia_march x86-64
ln -sf /%{_lib}/libgcc_s.so.1 %{_builddir}/%{buildsubdir}/build/%{_libdir}/libgcc_s.so.1
%endif
%ifarch armv6l armv6hl aarch64
export LDFLAGS="$LDFLAGS -latomic"
# I am not sure why Julia cannot find also libgfortran5.so on Leap...
ln -sf %{_libdir}/libgfortran.so.5 %{_builddir}/%{buildsubdir}/build/%{_libdir}/libgfortran.so.5
# Idk how it can't find libblastrampoline?
ln -sf %{_libdir}/libblastrampoline.so %{_builddir}/%{buildsubdir}/build/%{_libdir}/libblastrampoline.so
export LD_LIBRARY_PATH="%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:/usr/lib64:/usr/lib"
# Based on fedora specfile
# Work around bug that prompts zlib to be downloaded even when not used
# https://github.com/JuliaLang/julia/pull/42524/files#r734972945
# sed "s/ \$(build_prefix)\\/manifest\\/zlib//" -i deps/llvm.mk
%if 0%{?suse_version} > 1600
RELEASE_BANNER="openSUSE Tumbleweed - Built on $(date -u)"
%else
SLE_VERSION="$(echo %{sle_version} | sed -E 's|^(15)0([0-9])00|\1.\2|m')"
RELEASE_BANNER="openSUSE Leap ${SLE_VERSION} - Built on $(date -u)"
%endif
# We need these compilation flags to avoid error when building MBEDTLS with
# GCC-11.
# Ref.: https://build.opensuse.org/package/show/security:tls/mbedtls
export CFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
export CXXFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
export LD_LIBRARY_PATH=%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:%{_builddir}/%{buildsubdir}/usr/lib
pushd deps
export BUILDDIR="%{_builddir}/%{buildsubdir}/build"
export USE_BLAS64=1
export USE_BINARYBUILDER_OPENBLAS=0
export OPENBLAS_LIBNAMESUFFIX="%{?__isa_bits}_"
export OPENBLAS_SYMBOLSUFFIX="%{?__isa_bits}_"
export OPENBLAS_CFLAGS="%{optflags}"
make prefix=%{prefix} libdir=%{_libdir} bindir=%{_bindir} install-openblas
popd
make %{?_smp_mflags} \
MARCH=%{julia_march} \
MARCH="%{julia_march}" \
%ifarch x86_64 || x86_64_v3
JULIA_CPU_TARGET="generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1);x86_64-v4,-rdrnd,base(1)" \
%endif
%ifarch i686
JULIA_CPU_TARGET="pentium4" \
%endif
%ifarch armv7l
JULIA_CPU_TARGET="armv7-a;armv7-a,neon;armv7-a,neon,vfp4" \
%endif
%ifarch aarch64
JULIA_CPU_TARGET="generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm" \
JULIA_CPU_TARGET="generic;cortex-a57;thunderx2t99;carmel,clone_all" \
%endif
%ifarch x86_64
JULIA_CPU_TARGET="generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" \
%ifarch pp64le
JULIA_CPU_TARGET="pwr8" \
%endif
build_prefix=%{_builddir}/%{buildsubdir}/build%{_prefix} \
build_libdir=%{_builddir}/%{buildsubdir}/build%{_libdir} \
prefix=%{_prefix} \
bindir=%{_bindir} \
libdir=%{_libdir} \
libexecdir=%{_libexecdir} \
datarootdir=%{_datarootdir} \
includedir=%{_includedir} \
sysconfdir=%{_sysconfdir} \
USE_BINARYBUILDER=0 \
USE_SYSTEM_CSL=1 \
USE_SYSTEM_LLVM=0 \
USE_SYSTEM_LLD=1 \
USE_SYSTEM_LIBUNWIND=1 \
USE_SYSTEM_PCRE=1 \
USE_SYSTEM_BLAS=0 \
USE_SYSTEM_LAPACK=0 \
USE_SYSTEM_LIBBLASTRAMPOLINE=1 \
USE_SYSTEM_GMP=1 \
USE_SYSTEM_MPFR=1 \
USE_SYSTEM_LIBSUITESPARSE=1 \
USE_SYSTEM_SUITESPARSE=1 \
USE_INTEL_JITEVENTS=0 \
USE_SYSTEM_LIBWHICH=1 \
USE_SYSTEM_DSFMT=1 \
USE_SYSTEM_LIBUV=0 \
USE_SYSTEM_UTF8PROC=1 \
USE_SYSTEM_LIBGIT2=1 \
USE_SYSTEM_LIBSSH2=1 \
USE_SYSTEM_MBEDTLS=1 \
USE_SYSTEM_CURL=1 \
USE_SYSTEM_PATCHELF=1 \
USE_SYSTEM_ZLIB=1 \
USE_SYSTEM_P7ZIP=1 \
USE_SYSTEM_OPENLIBM=1 \
USE_BLAS64=1 \
JLDFLAGS="$LDFLAGS" \
VERBOSE=1 \
TAGGED_RELEASE_BANNER="openSUSE %{suse_version} experimental build (unofficial)" \
release debug
build_prefix="%{_builddir}/%{buildsubdir}/build%{_prefix}" \
build_libdir="%{_builddir}/%{buildsubdir}/build%{_libdir}" \
prefix="%{_prefix}" \
bindir="%{_bindir}" \
libdir="%{_libdir}" \
libexecdir="%{_libexecdir}" \
datarootdir="%{_datarootdir}" \
includedir="%{_includedir}" \
sysconfdir="%{_sysconfdir}" \
%{__julia_opts} \
%if 0%{?suse_version} > 1600
TAGGED_RELEASE_BANNER="${RELEASE_BANNER}" \
%else
TAGGED_RELEASE_BANNER="${RELEASE_BANNER}" \
%endif
release
# This may fix other issues where libLLVM-14jl.so is not properly copied?
# This may fix other issues where libLLVM-15jl.so is not properly copied?
if [ "x%{_lib}" != xlib ] ; then
cp -a %{_builddir}/%{buildsubdir}/build/usr/lib/* %{_builddir}/%{buildsubdir}/build/%{_libdir}
rm -rf %{_builddir}/%{buildsubdir}/build/usr/lib/
fi
%check
# The tests will only pass if openblas is being used.
# make %{?_smp_mflags} test
export CC=clang
export CXX=clang++
export CFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
export CXXFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
# Failures are to be expected if tests are done
# - int.jl not being found. see https://github.com/JuliaLang/julia/pull/53682#issuecomment-1992420825
# - Dates printing inconsistent. see https://github.com/JuliaLang/julia/issues/34655
# - hard-coded libs for non-impactful libraries e.g. zlib or mbedtls. see https://github.com/JuliaLang/julia/pull/38347#discussion_r574819534.
# understandable if LLVM and other patched libraries but for unpatched ones, i am not sure if it is a strict requirement but reports
# say mbedtls and similar work just fine.
# I might have to disable the tests for now
export CFLAGS="%{optflags} -Wno-error=implicit-function-declaration"
export CXXFLAGS="%{optflags} -Wno-error=implicit-function-declaration"
export LD_LIBRARY_PATH="%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:/usr/lib64:/usr/lib"
pushd %{_builddir}/%{buildsubdir}/test
# DISABLED FOR NOW
# ../julia --check-bounds=yes --startup-file=no ./runtests.jl || true
# Printing the version just for the sake of printing the version
../julia --version
popd
%install
# We need these compilation flags to avoid error when building MBEDTLS with
# GCC-11.
# Ref.: https://build.opensuse.org/package/show/security:tls/mbedtls
export CFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
export CXXFLAGS="%{optflags} -Wno-stringop-overflow -Wno-maybe-uninitialized"
export LD_LIBRARY_PATH=%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:%{_builddir}/%{buildsubdir}/usr/lib
export CC=clang
export CXX=clang++
export CFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
export CXXFLAGS="%{optflags} -Wno-error=incompatible-pointer-types -Wno-error=implicit-function-declaration"
export DEPS_GIT=0
export BUILD_LLD=1
export BUILD_LLDB=1
export LD_LIBRARY_PATH="%{_builddir}/%{buildsubdir}/build/usr/lib:%{_builddir}/%{buildsubdir}/build%{_libdir}:/usr/lib64:/usr/lib"
%if 0%{?suse_version} > 1600
RELEASE_BANNER="openSUSE Tumbleweed - Built on $(date -u)"
%else
SLE_VERSION="$(echo %{sle_version} | sed -E 's|^(15)0([0-9])00|\1.\2|m')"
RELEASE_BANNER="openSUSE Leap ${SLE_VERSION} - Built on $(date -u)"
%endif
make install DESTDIR=%{buildroot} \
MARCH=%{julia_march} \
make install DESTDIR="%{buildroot}" \
MARCH="%{julia_march}" \
%ifarch x86_64 || x86_64_v3
JULIA_CPU_TARGET="generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1);x86_64-v4,-rdrnd,base(1)" \
%endif
%ifarch i686
JULIA_CPU_TARGET="pentium4" \
%endif
%ifarch armv7l
JULIA_CPU_TARGET="armv7-a;armv7-a,neon;armv7-a,neon,vfp4" \
%endif
%ifarch aarch64
JULIA_CPU_TARGET="generic;cortex-a57;thunderx2t99;armv8.2-a,crypto,fullfp16,lse,rdm" \
JULIA_CPU_TARGET="generic;cortex-a57;thunderx2t99;carmel,clone_all" \
%endif
%ifarch x86_64
JULIA_CPU_TARGET="generic;sandybridge,-xsaveopt,clone_all;haswell,-rdrnd,base(1)" \
%ifarch pp64le
JULIA_CPU_TARGET="pwr8" \
%endif
build_prefix=%{_builddir}/%{buildsubdir}/build%{_prefix} \
build_libdir=%{_builddir}/%{buildsubdir}/build%{_libdir} \
prefix=%{_prefix} \
bindir=%{_bindir} \
libdir=%{_libdir} \
libexecdir=%{_libexecdir} \
datarootdir=%{_datarootdir} \
includedir=%{_includedir} \
sysconfdir=%{_sysconfdir} \
USE_BINARYBUILDER=0 \
USE_SYSTEM_CSL=1 \
USE_SYSTEM_LLVM=0 \
USE_SYSTEM_LLD=1 \
USE_SYSTEM_LIBUNWIND=1 \
USE_SYSTEM_PCRE=1 \
USE_SYSTEM_BLAS=0 \
USE_SYSTEM_LAPACK=0 \
USE_SYSTEM_LIBBLASTRAMPOLINE=1 \
USE_SYSTEM_GMP=1 \
USE_SYSTEM_MPFR=1 \
USE_SYSTEM_LIBSUITESPARSE=1 \
USE_SYSTEM_SUITESPARSE=1 \
USE_INTEL_JITEVENTS=0 \
USE_SYSTEM_LIBWHICH=1 \
USE_SYSTEM_DSFMT=1 \
USE_SYSTEM_LIBUV=0 \
USE_SYSTEM_UTF8PROC=1 \
USE_SYSTEM_LIBGIT2=1 \
USE_SYSTEM_LIBSSH2=1 \
USE_SYSTEM_MBEDTLS=1 \
USE_SYSTEM_CURL=1 \
USE_SYSTEM_PATCHELF=1 \
USE_SYSTEM_ZLIB=1 \
USE_SYSTEM_P7ZIP=1 \
USE_SYSTEM_OPENLIBM=1 \
USE_BLAS64=1 \
JLDFLAGS="$LDFLAGS" \
VERBOSE=1 \
TAGGED_RELEASE_BANNER="openSUSE %{suse_version} experimental build (unofficial)"
build_prefix="%{_builddir}/%{buildsubdir}/build%{_prefix}" \
build_libdir="%{_builddir}/%{buildsubdir}/build%{_libdir}" \
prefix="%{_prefix}" \
bindir="%{_bindir}" \
libdir="%{_libdir}" \
libexecdir="%{_libexecdir}" \
datarootdir="%{_datarootdir}" \
includedir="%{_includedir}" \
sysconfdir="%{_sysconfdir}" \
%{__julia_opts} \
%if 0%{?suse_version} > 1600
TAGGED_RELEASE_BANNER="${RELEASE_BANNER}"
%else
TAGGED_RELEASE_BANNER="${RELEASE_BANNER}"
%endif
# Fix dangling symlinks
ln -sf %{_libdir}/libblastrampoline.so %{buildroot}%{_libdir}/julia/libblastrampoline.so
%if 0%{?suse_version} > 1600
ln -sf %{_libdir}/libgcc_s.so.1 %{buildroot}%{_libdir}/julia/libgcc_s.so.1
%else
ln -sf /%{_lib}/libgcc_s.so.1 %{buildroot}%{_libdir}/julia/libgcc_s.so.1
%endif
ln -sf %{_libdir}/libgfortran.so.5 %{buildroot}%{_libdir}/julia/libgfortran.so.5
ln -sf %{_libdir}/libcurl.so %{buildroot}%{_libdir}/julia/libcurl.so.4
# GZip man page.
gzip %{buildroot}/%{_mandir}/man1/julia.1
# Copy the man page for every executable.
cd %{buildroot}/%{_mandir}/man1/
rm -f %{buildroot}%{_libdir}/julia/libuv.a
rm -f %{buildroot}%{_datadir}/julia/base/build.h
rm -f %{buildroot}%{_datadir}/julia/base/Makefile
@@ -402,6 +598,29 @@ ln -sfv /var/lib/ca-certificates/ca-bundle.pem %{buildroot}%{_datadir}/julia/cer
# Remove execution permission on documentation files.
chmod -x+X -R %{buildroot}%{_docdir}/julia/*
# Prevent find-debuginfo from touching precompiled caches as it
# changes checksums, which invalidates them
chmod -x %{buildroot}%{_datarootdir}/julia/compiled/*/*/*.so
# Install .desktop file and icons
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/
mkdir -p %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/
cp -p contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
convert -scale 16x16 -extent 16x16 -gravity center -background transparent \
contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
convert -scale 24x24 -extent 24x24 -gravity center -background transparent \
contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/%{name}.png
convert -scale 32x32 -extent 32x32 -gravity center -background transparent \
contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
convert -scale 48x48 -extent 48x48 -gravity center -background transparent \
contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
convert -scale 256x256 -extent 256x256 -gravity center -background transparent \
contrib/julia.svg %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
# Remove hidden files and zero-length files and directories from stdlib.
pushd %{buildroot}
find . -name ".codecov.yml" -prune -execdir rm -rf {} \;
@@ -424,9 +643,6 @@ rm -rf %{buildroot}%{_docdir}/julia/
rm %{buildroot}%{_datadir}/appdata/julia.appdata.xml
%endif
# Remove duplicated files.
%fdupes %{buildroot}
%suse_update_desktop_file -r julia Science Math
mv %{buildroot}%{_bindir}/julia %{buildroot}%{_bindir}/julia-base
@@ -434,24 +650,41 @@ mkdir -p %{buildroot}%{_sysconfdir}/alternatives
if [ "x%{_lib}" != xlib ] ; then
mkdir -p %{buildroot}%{_prefix}/lib
ln -sf %{_libdir}/julia %{buildroot}%{_prefix}/lib/julia
ln -sf %{_libdir}/julia %{buildroot}%{_prefix}/lib/julia
fi
ln -sf %{_sysconfdir}/alternatives/julia %{buildroot}%{_bindir}/julia
# Julia has a custom compiled LLVM sofile with a good name. We need
# it to be discoverable in LD_LIBRARY_PATHs
# so it can be dlopened for libLLVM_jll
ln -sf %{_libdir}/julia/libLLVM-15jl.so %{buildroot}%{_libdir}/libLLVM-15jl.so
# Attempt to convert all eol encodings to Unix
find %{buildroot} -type f -execdir dos2unix -k {} \;
# make it executable
chmod +x %{buildroot}%{_datadir}/julia/stdlib/v1.10/SparseArrays/gen/generator.jl
# Remove duplicated files.
%fdupes -s %{buildroot}%{_datadir}/julia
# Remove libtool leftovers
find %{buildroot} -type f -name "*.la" -delete -print
# Set RPATHs for libmpfr.so from julia
patchelf --set-rpath "%{_libdir}/julia:%{_libdir}:%{_prefix}/lib" "%{buildroot}%{_libdir}/julia/libmpfr.so"
%post
%{_sbindir}/update-alternatives --install %{_bindir}/julia \
julia %{_bindir}/julia-base 5
%{_sbindir}/ldconfig
%postun
if [ ! -f %{_bindir}/julia-base ] ; then
%{_sbindir}/update-alternatives --remove julia %{_bindir}/julia-base
fi
%{_sbindir}/ldconfig
%post devel -p /sbin/ldconfig
%postun devel -p /sbin/ldconfig
%ldconfig_scriptlets -n %{libname}
%files
%doc CONTRIBUTING.md NEWS.md README.md
@@ -467,6 +700,12 @@ fi
%{_datadir}/julia/cert.pem
%dir %{_libexecdir}/julia
%{_libexecdir}/julia/*
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/icons/hicolor/16x16/apps/%{name}.png
%{_datadir}/icons/hicolor/24x24/apps/%{name}.png
%{_datadir}/icons/hicolor/32x32/apps/%{name}.png
%{_datadir}/icons/hicolor/48x48/apps/%{name}.png
%{_datadir}/icons/hicolor/256x256/apps/%{name}.png
%if !%{?compat_mode}
%dir %{_datadir}/appdata/
@@ -477,8 +716,8 @@ fi
%{_datadir}/applications/julia.desktop
%{_prefix}/lib/julia
%{_libdir}/julia/
%{_libdir}/libjulia.so.%{libjulia_sover_major}.%{libjulia_sover_minor}
%{_mandir}/man1/julia.1%{?ext_man}
%{_libdir}/libLLVM-15jl.so
%dir %{_sysconfdir}/julia/
%config(noreplace) %{_sysconfdir}/julia/startup.jl
@@ -486,7 +725,9 @@ fi
%{_datadir}/julia/test/
%{_datadir}/julia/julia-config.jl
%{_includedir}/julia/
%{_libdir}/libjulia.so.%{libjulia_sover_major}
%{_libdir}/libjulia.so
%files -n %{libname}
%{_libdir}/libjulia.so.*
%changelog

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b77adbc404ff08702add49c010ca1560d3d8cbb706f82efb3b3e71a71912b8d1
size 78372324

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7b10f2cade3358fb97e3657f1b71442a481045b395742e6196b99dfe5012b73d
size 82317366

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fcf860092982bc4855117bb16d9efa7b98f62adfcd574a0e6969526407fd2f17
size 85634590

View File

@@ -1,18 +0,0 @@
From: Soc Virnyl Estela <contact@uncomfyhalomacro.pl>
Date: Sat, 09 Dec 2023 16:30:31 +0800
Subject: Change hardcoded libs for libblastrampoline
---
diff -ruN julia-1.9.4.orig/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl julia-1.9.4/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl
--- julia-1.9.4.orig/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl 2023-12-09 14:21:37.910096392 +0800
+++ julia-1.9.4/stdlib/libblastrampoline_jll/src/libblastrampoline_jll.jl 2023-12-09 14:21:58.006998468 +0800
@@ -24,7 +24,7 @@
elseif Sys.isapple()
"@rpath/libblastrampoline.5.dylib"
else
- "libblastrampoline.so.5"
+ "libblastrampoline.so"
end
function __init__()

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ba0894300292bff7c740736f3b54f9323ef09a6f62c0c9434e1a9350da484fed
size 812862

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c349bf6bc5e6d4ac78aa545411c76744bc571b83ca9bfd1d69059f000b15a592
size 880007

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c29d2d46aaa67a5a6b69e990f6af5c857a2375c454c5102dd8175701b77c240c
size 869004

View File

@@ -1,29 +0,0 @@
From: Soc Virnyl Estela <contact@uncomfyhalomacro.pl>
Date: Sat, 09 Dec 2023 16:30:31 +0800
Subject: Change --link-static to --link-shared
If we don't change it to shared, it will fail to link it
since openSUSE's llvm does not have static libraries.
---
diff -ruN julia-1.9.4.orig/src/Makefile julia/src/Makefile
--- julia-1.9.4.orig/src/Makefile 2023-12-08 06:25:53.604185583 +0800
+++ julia/src/Makefile 2023-12-08 13:19:45.202318921 +0800
@@ -125,7 +125,7 @@
# USE_SYSTEM_LLVM == 0
ifneq ($(USE_LLVM_SHLIB),1)
# USE_LLVM_SHLIB != 1
-CG_LLVMLINK += $(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --libs $(CG_LLVM_LIBS) --link-static) $($(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --system-libs 2> /dev/null)
+CG_LLVMLINK += $(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --libs $(CG_LLVM_LIBS) --link-shared) $($(LLVM_LDFLAGS) $(shell $(LLVM_CONFIG_HOST) --system-libs 2> /dev/null)
else
# USE_LLVM_SHLIB == 1
ifeq ($(OS), Darwin)
@@ -141,7 +141,7 @@
endif # USE_LLVM_SHLIB == 1
endif # JULIACODEGEN == LLVM
-RT_LLVM_LINK_ARGS := $(shell $(LLVM_CONFIG_HOST) --libs $(RT_LLVM_LIBS) --system-libs --link-static)
+RT_LLVM_LINK_ARGS := $(shell $(LLVM_CONFIG_HOST) --libs $(RT_LLVM_LIBS) --system-libs --link-shared)
RT_LLVMLINK += $(LLVM_LDFLAGS) $(RT_LLVM_LINK_ARGS)
ifeq ($(OS), WINNT)
RT_LLVMLINK += -luuid -lole32

View File

@@ -1,411 +0,0 @@
From 921f1b9d5e9389756826898d6907c0a2829efa51 Mon Sep 17 00:00:00 2001
From: Prem Chintalapudi <prem.chintalapudi@gmail.com>
Date: Wed, 10 May 2023 09:58:04 -0400
Subject: [PATCH 1/7] Fix remarks emissions from simdloop pass
Co-authored-by: Valentin Churavy <v.churavy@gmail.com>
---
src/llvm-simdloop.cpp | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/llvm-simdloop.cpp b/src/llvm-simdloop.cpp
index 3c94b226ad7b8..233f61c9fea6b 100644
--- a/src/llvm-simdloop.cpp
+++ b/src/llvm-simdloop.cpp
@@ -165,11 +165,13 @@ static bool markLoopInfo(Module &M, Function *marker, function_ref<LoopInfo &(Fu
Instruction *I = cast<Instruction>(U);
ToDelete.push_back(I);
- LoopInfo &LI = GetLI(*I->getParent()->getParent());
- Loop *L = LI.getLoopFor(I->getParent());
- I->removeFromParent();
- if (!L)
+ BasicBlock *B = I->getParent();
+ LoopInfo &LI = GetLI(*B->getParent());
+ Loop *L = LI.getLoopFor(B);
+ if (!L) {
+ I->removeFromParent();
continue;
+ }
LLVM_DEBUG(dbgs() << "LSL: loopinfo marker found\n");
bool simd = false;
@@ -258,6 +260,8 @@ static bool markLoopInfo(Module &M, Function *marker, function_ref<LoopInfo &(Fu
}
}
+ I->removeFromParent();
+
Changed = true;
}
From b2273d39542fe803f7d9da03ef57af7e815db68c Mon Sep 17 00:00:00 2001
From: Valentin Churavy <v.churavy@gmail.com>
Date: Sun, 30 Apr 2023 20:19:08 -0400
Subject: [PATCH 3/7] Do not yet mandate opaque pointers for LLVM 15
---
src/codegen.cpp | 11 +++++++++++
src/jitlayers.cpp | 3 ---
src/llvm-version.h | 2 +-
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
index a9d2cb0c60333..2e3f7eb2bf7bb 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -9083,6 +9083,17 @@ extern "C" void jl_init_llvm(void)
if (clopt && clopt->getNumOccurrences() == 0)
cl::ProvidePositionalOption(clopt, "4", 1);
+#if JL_LLVM_VERSION >= 150000
+ clopt = llvmopts.lookup("opaque-pointers");
+ if (clopt && clopt->getNumOccurrences() == 0) {
+#ifdef JL_LLVM_OPAQUE_POINTERS
+ cl::ProvidePositionalOption(clopt, "true", 1);
+#else
+ cl::ProvidePositionalOption(clopt, "false", 1);
+#endif
+ }
+#endif
+
jl_ExecutionEngine = new JuliaOJIT();
bool jl_using_gdb_jitevents = false;
diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp
index 643f0468457ae..ef7e98bb7852a 100644
--- a/src/jitlayers.cpp
+++ b/src/jitlayers.cpp
@@ -1306,9 +1306,6 @@ JuliaOJIT::JuliaOJIT()
JD(ES.createBareJITDylib("JuliaOJIT")),
ContextPool([](){
auto ctx = std::make_unique<LLVMContext>();
-#ifdef JL_LLVM_OPAQUE_POINTERS
- ctx->setOpaquePointers(true);
-#endif
return orc::ThreadSafeContext(std::move(ctx));
}),
#ifdef JL_USE_JITLINK
diff --git a/src/llvm-version.h b/src/llvm-version.h
index a3f3774b6dc15..819ec1c88976b 100644
--- a/src/llvm-version.h
+++ b/src/llvm-version.h
@@ -14,7 +14,7 @@
#error Only LLVM versions >= 12.0.0 are supported by Julia
#endif
-#if JL_LLVM_VERSION >= 150000
+#if JL_LLVM_VERSION >= 160000
#define JL_LLVM_OPAQUE_POINTERS 1
#endif
From 190f84180883eb498cb7b7ed27e10af9a6c62863 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <v.churavy@gmail.com>
Date: Wed, 26 Apr 2023 20:48:45 -0400
Subject: [PATCH 4/7] Upgrade Julia to LLVM 15.0.7+5
Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>
---
Make.inc | 2 +-
deps/checksums/clang | 224 ++++++++--------
deps/checksums/lld | 224 ++++++++--------
deps/checksums/llvm | 452 +++++++++++++++-----------------
deps/clang.version | 2 +-
deps/lld.version | 2 +-
deps/llvm-tools.version | 4 +-
deps/llvm.version | 9 +-
stdlib/LLD_jll/Project.toml | 4 +-
stdlib/libLLVM_jll/Project.toml | 2 +-
10 files changed, 446 insertions(+), 479 deletions(-)
diff --git a/Make.inc b/Make.inc
index 4d564f057a3da..35b0657de5aa2 100644
--- a/Make.inc
+++ b/Make.inc
@@ -480,7 +480,7 @@ FC := $(CROSS_COMPILE)gfortran
ifeq ($(OS), Darwin)
APPLE_ARCH := $(shell uname -m)
ifneq ($(APPLE_ARCH),arm64)
-MACOSX_VERSION_MIN := 10.10
+MACOSX_VERSION_MIN := 10.14
else
MACOSX_VERSION_MIN := 11.0
endif
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 2e3f7eb2bf7bb..07e7b15afc165 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -9169,7 +9169,9 @@ extern "C" JL_DLLEXPORT void jl_init_codegen_impl(void)
extern "C" JL_DLLEXPORT void jl_teardown_codegen_impl() JL_NOTSAFEPOINT
{
// output LLVM timings and statistics
- jl_ExecutionEngine->printTimers();
+ // Guard against exits before we have initialized the ExecutionEngine
+ if (jl_ExecutionEngine)
+ jl_ExecutionEngine->printTimers();
PrintStatistics();
}
diff --git a/src/jitlayers.h b/src/jitlayers.h
index bbbcbe73f1e54..4c6921cd42dab 100644
--- a/src/jitlayers.h
+++ b/src/jitlayers.h
@@ -97,10 +97,8 @@ struct OptimizationOptions {
};
// LLVM's new pass manager is scheduled to replace the legacy pass manager
-// for middle-end IR optimizations. However, we have not qualified the new
-// pass manager on our optimization pipeline yet, so this remains an optional
-// define
-#if defined(HAS_SANITIZER) && JL_LLVM_VERSION >= 150000
+// for middle-end IR optimizations.
+#if JL_LLVM_VERSION >= 150000
#define JL_USE_NEW_PM
#endif
diff --git a/src/pipeline.cpp b/src/pipeline.cpp
index 4403653a9d8e4..7e61171d288e6 100644
--- a/src/pipeline.cpp
+++ b/src/pipeline.cpp
@@ -361,7 +361,8 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
{
FunctionPassManager FPM;
FPM.addPass(SROAPass());
- FPM.addPass(InstSimplifyPass());
+ // SROA can duplicate PHI nodes which can block LowerSIMD
+ FPM.addPass(InstCombinePass());
FPM.addPass(JumpThreadingPass());
FPM.addPass(CorrelatedValuePropagationPass());
FPM.addPass(ReassociatePass());
@@ -384,7 +385,7 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
#endif
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
- LPM2.addPass(SimpleLoopUnswitchPass(true, true));
+ LPM2.addPass(SimpleLoopUnswitchPass(false, true));
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
//LICM needs MemorySSA now, so we must use it
@@ -397,11 +398,11 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
LPM.addPass(LoopIdiomRecognizePass());
LPM.addPass(IndVarSimplifyPass());
LPM.addPass(LoopDeletionPass());
+ LPM.addPass(LoopFullUnrollPass());
invokeLoopOptimizerEndCallbacks(LPM, PB, O);
//We don't know if the loop end callbacks support MSSA
FPM.addPass(createFunctionToLoopPassAdaptor(std::move(LPM), /*UseMemorySSA = */false));
}
- FPM.addPass(LoopUnrollPass(LoopUnrollOptions().setRuntime(false)));
JULIA_PASS(FPM.addPass(AllocOptPass()));
FPM.addPass(SROAPass());
FPM.addPass(InstSimplifyPass());
From 2ddbb5abb93045eeb4513e223c86e9c25fa774a4 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <v.churavy@gmail.com>
Date: Wed, 26 Apr 2023 20:49:16 -0400
Subject: [PATCH 6/7] Fix tests and static analyzer for LLVM 15
Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>
Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com>
---
src/llvm-alloc-opt.cpp | 3 ++
src/llvm-late-gc-lowering.cpp | 1 +
src/llvm-lower-handlers.cpp | 1 +
src/llvm-multiversioning.cpp | 3 ++
src/llvm-ptls.cpp | 2 +
test/clangsa/MissingRoots.c | 3 ++
test/cmdlineargs.jl | 10 ++--
test/llvmpasses/pipeline-o2-broadcast.jl | 68 ++++++++++++++----------
test/llvmpasses/pipeline-o2.jl | 6 +--
9 files changed, 62 insertions(+), 35 deletions(-)
diff --git a/src/llvm-alloc-opt.cpp b/src/llvm-alloc-opt.cpp
index 1a524cbe8d419..bb6de67f347ff 100644
--- a/src/llvm-alloc-opt.cpp
+++ b/src/llvm-alloc-opt.cpp
@@ -1138,9 +1138,12 @@ void Optimizer::splitOnStack(CallInst *orig_inst)
ref->setOrdering(AtomicOrdering::NotAtomic);
operands.push_back(ref);
}
+#ifndef __clang_analyzer__
+ // FIXME: SA finds "Called C++ object pointer is null" inside the LLVM code.
auto new_call = builder.CreateCall(pass.gc_preserve_begin_func, operands);
new_call->takeName(call);
call->replaceAllUsesWith(new_call);
+#endif
call->eraseFromParent();
return;
}
diff --git a/src/llvm-late-gc-lowering.cpp b/src/llvm-late-gc-lowering.cpp
index a836ff1361768..ac70685e7431b 100644
--- a/src/llvm-late-gc-lowering.cpp
+++ b/src/llvm-late-gc-lowering.cpp
@@ -1262,6 +1262,7 @@ static bool isLoadFromConstGV(LoadInst *LI, bool &task_local, PhiSet *seen)
// We only emit single slot GV in codegen
// but LLVM global merging can change the pointer operands to GEPs/bitcasts
auto load_base = LI->getPointerOperand()->stripInBoundsOffsets();
+ assert(load_base); // Static analyzer
auto gv = dyn_cast<GlobalVariable>(load_base);
if (isTBAA(LI->getMetadata(LLVMContext::MD_tbaa),
{"jtbaa_immut", "jtbaa_const", "jtbaa_datatype"})) {
diff --git a/src/llvm-lower-handlers.cpp b/src/llvm-lower-handlers.cpp
index 919128769019b..39a36bfc3ba76 100644
--- a/src/llvm-lower-handlers.cpp
+++ b/src/llvm-lower-handlers.cpp
@@ -8,6 +8,7 @@
#include <llvm/ADT/DepthFirstIterator.h>
#include <llvm/ADT/Statistic.h>
+#include <llvm/ADT/Triple.h>
#include <llvm/Analysis/CFG.h>
#include <llvm/IR/BasicBlock.h>
#include <llvm/IR/Constants.h>
diff --git a/src/llvm-multiversioning.cpp b/src/llvm-multiversioning.cpp
index 21a090724802a..cdba03047a4b7 100644
--- a/src/llvm-multiversioning.cpp
+++ b/src/llvm-multiversioning.cpp
@@ -14,11 +14,13 @@
#include <llvm/Pass.h>
#include <llvm/ADT/BitVector.h>
#include <llvm/ADT/Statistic.h>
+#include <llvm/ADT/Triple.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Constants.h>
+#include <llvm/IR/Dominators.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/Analysis/LoopInfo.h>
#include <llvm/Analysis/CallGraph.h>
@@ -779,6 +781,7 @@ static Value *rewrite_inst_use(const Stack& stack, Type *T_size, Value *replace,
replace = inst;
continue;
}
+ assert(val);
unsigned nargs = val->getNumOperands();
args.resize(nargs);
for (unsigned j = 0; j < nargs; j++) {
diff --git a/src/llvm-ptls.cpp b/src/llvm-ptls.cpp
index 8174832b3cebf..a628710916327 100644
--- a/src/llvm-ptls.cpp
+++ b/src/llvm-ptls.cpp
@@ -9,6 +9,7 @@
#include <llvm-c/Types.h>
#include <llvm/Pass.h>
+#include <llvm/ADT/Triple.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Function.h>
@@ -161,6 +162,7 @@ void LowerPTLS::fix_pgcstack_use(CallInst *pgcstack, Function *pgcstack_getter,
SmallVector<uint32_t, 2> Weights{9, 1};
TerminatorInst *fastTerm;
TerminatorInst *slowTerm;
+ assert(pgcstack->getType()); // Static analyzer
auto cmp = new ICmpInst(phi, CmpInst::ICMP_NE, pgcstack, Constant::getNullValue(pgcstack->getType()));
SplitBlockAndInsertIfThenElse(cmp, phi, &fastTerm, &slowTerm,
MDB.createBranchWeights(Weights));
diff --git a/test/clangsa/MissingRoots.c b/test/clangsa/MissingRoots.c
index f0b32c54bc7b8..0ff5e633622ce 100644
--- a/test/clangsa/MissingRoots.c
+++ b/test/clangsa/MissingRoots.c
@@ -352,6 +352,9 @@ void assoc_exact_broken(jl_value_t **args, size_t n, int8_t offs, size_t world)
}
*/
+// declare
+jl_typemap_level_t *jl_new_typemap_level(void);
+
void assoc_exact_ok(jl_value_t *args1, jl_value_t **args, size_t n, int8_t offs, size_t world) {
jl_typemap_level_t *cache = jl_new_typemap_level();
JL_GC_PUSH1(&cache);
diff --git a/test/cmdlineargs.jl b/test/cmdlineargs.jl
index 389b195d97935..1d04926ef23af 100644
--- a/test/cmdlineargs.jl
+++ b/test/cmdlineargs.jl
@@ -188,10 +188,12 @@ let exename = `$(Base.julia_cmd()) --startup-file=no --color=no`
@test contains(v[2], r"enable-tail-merge + = 1")
@test isempty(v[3])
end
- @testset let v = readchomperrors(setenv(`$exename -e 0`, "JULIA_LLVM_ARGS" => "-print-options -enable-tail-merge=1 -enable-tail-merge=1", "HOME" => homedir()))
- @test !v[1]
- @test isempty(v[2])
- @test v[3] == "julia: for the --enable-tail-merge option: may only occur zero or one times!"
+ if Base.libllvm_version < v"15" #LLVM over 15 doesn't care for multiple options
+ @testset let v = readchomperrors(setenv(`$exename -e 0`, "JULIA_LLVM_ARGS" => "-print-options -enable-tail-merge=1 -enable-tail-merge=1", "HOME" => homedir()))
+ @test !v[1]
+ @test isempty(v[2])
+ @test v[3] == "julia: for the --enable-tail-merge option: may only occur zero or one times!"
+ end
end
end
diff --git a/test/llvmpasses/pipeline-o2.jl b/test/llvmpasses/pipeline-o2.jl
index 2996a44de62b3..fcb2161de7614 100644
--- a/test/llvmpasses/pipeline-o2.jl
+++ b/test/llvmpasses/pipeline-o2.jl
@@ -78,21 +78,21 @@ end
# COM: memset checks
# COM: INT64
-# ALL-LABEL: define nonnull {} addrspace(10)* @julia_zeros
+# ALL: define {{.*}} @julia_zeros
# ALL-NOT: bounds_error
# COM: memset is not used with bounds checks on (too late in the pipeline)
# BC_OFF: llvm.memset
# BC_AUTO: llvm.memset
# COM: INT32
-# ALL-LABEL: define nonnull {} addrspace(10)* @julia_zeros
+# ALL: define {{.*}} @julia_zeros
# ALL-NOT: bounds_error
# COM: memset is not used with bounds checks on (too late in the pipeline)
# BC_OFF: llvm.memset
# BC_AUTO: llvm.memset
# COM: INT16
-# ALL-LABEL: define nonnull {} addrspace(10)* @julia_zeros
+# ALL: define {{.*}} @julia_zeros
# ALL-NOT: bounds_error
# COM: memset is not used with bounds checks on (too late in the pipeline)
# BC_OFF: llvm.memset
From 77c13ad59364189386114b546a7482dbe2edf233 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <v.churavy@gmail.com>
Date: Wed, 10 May 2023 10:51:16 -0400
Subject: [PATCH 7/7] Reenable NonTrivial Loop Unswitch
---
src/codegen.cpp | 3 ---
src/pipeline.cpp | 2 +-
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 07e7b15afc165..ae306d3d1cdb5 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -9073,9 +9073,6 @@ extern "C" void jl_init_llvm(void)
clopt = llvmopts.lookup("unswitch-threshold");
if (clopt->getNumOccurrences() == 0)
cl::ProvidePositionalOption(clopt, "100", 1);
- clopt = llvmopts.lookup("enable-unswitch-cost-multiplier");
- if (clopt->getNumOccurrences() == 0)
- cl::ProvidePositionalOption(clopt, "false", 1);
#endif
// if the patch adding this option has been applied, lower its limit to provide
// better DAGCombiner performance.
diff --git a/src/pipeline.cpp b/src/pipeline.cpp
index 7e61171d288e6..6e6a9a3c37d02 100644
--- a/src/pipeline.cpp
+++ b/src/pipeline.cpp
@@ -385,7 +385,7 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
#endif
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
- LPM2.addPass(SimpleLoopUnswitchPass(false, true));
+ LPM2.addPass(SimpleLoopUnswitchPass(/*NonTrivial*/true, true));
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
//LICM needs MemorySSA now, so we must use it

View File

@@ -1,22 +0,0 @@
From: Soc Virnyl Estela <contact@uncomfyhalomacro.pl>
Date: Sat, 09 Dec 2023 16:30:31 +0800
Subject: Modify hardcoded libs for mbedtls
---
diff -ruN julia-1.9.4.orig/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl julia/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl
--- julia-1.9.4.orig/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl 2023-12-08 17:54:46.804532060 +0800
+++ julia/stdlib/MbedTLS_jll/src/MbedTLS_jll.jl 2023-12-09 07:41:38.758431369 +0800
@@ -31,9 +31,9 @@
const libmbedtls = "@rpath/libmbedtls.14.dylib"
const libmbedx509 = "@rpath/libmbedx509.1.dylib"
else
- const libmbedcrypto = "libmbedcrypto.so.7"
- const libmbedtls = "libmbedtls.so.14"
- const libmbedx509 = "libmbedx509.so.1"
+ const libmbedcrypto = "libmbedcrypto.so"
+ const libmbedtls = "libmbedtls.so"
+ const libmbedx509 = "libmbedx509.so"
end
function __init__()

View File

@@ -0,0 +1,25 @@
diff -ruN julia-1.10.3.orig/deps/mpfr.mk julia-1.10.3/deps/mpfr.mk
--- julia-1.10.3.orig/deps/mpfr.mk 2024-05-10 23:13:57.440776105 +0800
+++ julia-1.10.3/deps/mpfr.mk 2024-05-12 17:15:31.003123811 +0800
@@ -1,19 +1,15 @@
## MPFR ##
include $(SRCDIR)/mpfr.version
-ifeq ($(USE_SYSTEM_GMP), 0)
$(BUILDDIR)/mpfr-$(MPFR_VER)/build-configured: | $(build_prefix)/manifest/gmp
-endif
ifneq ($(USE_BINARYBUILDER_MPFR),1)
MPFR_CONFIGURE_OPTS := $(CONFIGURE_COMMON)
MPFR_CONFIGURE_OPTS += --enable-thread-safe --enable-shared-cache --disable-float128 --disable-decimal-float
MPFR_CONFIGURE_OPTS += --enable-shared --disable-static
-
-ifeq ($(USE_SYSTEM_GMP), 0)
-MPFR_CONFIGURE_OPTS += --with-gmp=$(abspath $(build_prefix))
-endif
+MPFR_CONFIGURE_OPTS += --with-gmp-lib=$(abspath $(build_prefix))/lib64
+MPFR_CONFIGURE_OPTS += --with-gmp-include=$(abspath $(build_prefix))/include
ifeq ($(SANITIZE),1)
# Force generic C build

View File

@@ -1,304 +0,0 @@
From e08e14449fdec30d83ae2b9f0d6d1f4a9acf0b75 Mon Sep 17 00:00:00 2001
From: pchintalapudi <34727397+pchintalapudi@users.noreply.github.com>
Date: Mon, 17 Apr 2023 19:37:59 +0000
Subject: [PATCH] Bring in newpm (new pass manager) updates to master (#47038)
* Workaround missing ASAN global
* Add alias analysis at O2 instead of O3
* Disable runtime unrolling
* Make SimpleLoopUnswitch act like LoopUnswitch
* Add --time-passes support
* Only add verification passes in debug mode
* Hide assertion function
---
src/codegen.cpp | 11 ++++++++++-
src/jitlayers.cpp | 49 ++++++++++++++++++++++++++++++++++++-----------
src/jitlayers.h | 17 ++++++++++++----
src/pipeline.cpp | 27 ++++++++++++++------------
4 files changed, 76 insertions(+), 28 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
index b6b86ba4442e1..fb8cefe5eb44f 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -8838,6 +8838,15 @@ extern "C" void jl_init_llvm(void)
clopt = llvmopts.lookup("enable-tail-merge"); // NOO TOUCHIE; NO TOUCH! See #922
if (clopt->getNumOccurrences() == 0)
cl::ProvidePositionalOption(clopt, "0", 1);
+#ifdef JL_USE_NEW_PM
+ // For parity with LoopUnswitch
+ clopt = llvmopts.lookup("unswitch-threshold");
+ if (clopt->getNumOccurrences() == 0)
+ cl::ProvidePositionalOption(clopt, "100", 1);
+ clopt = llvmopts.lookup("enable-unswitch-cost-multiplier");
+ if (clopt->getNumOccurrences() == 0)
+ cl::ProvidePositionalOption(clopt, "false", 1);
+#endif
// if the patch adding this option has been applied, lower its limit to provide
// better DAGCombiner performance.
clopt = llvmopts.lookup("combiner-store-merge-dependence-limit");
@@ -8916,7 +8925,7 @@ extern "C" JL_DLLEXPORT void jl_init_codegen_impl(void)
extern "C" JL_DLLEXPORT void jl_teardown_codegen_impl() JL_NOTSAFEPOINT
{
// output LLVM timings and statistics
- reportAndResetTimings();
+ jl_ExecutionEngine->printTimers();
PrintStatistics();
}
diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp
index c7e202b98efab..29665d4e420b9 100644
--- a/src/jitlayers.cpp
+++ b/src/jitlayers.cpp
@@ -1103,6 +1103,8 @@ namespace {
std::unique_ptr<TargetMachine> TM;
int optlevel;
PMCreator(TargetMachine &TM, int optlevel) : TM(cantFail(createJTMBFromTM(TM, optlevel).createTargetMachine())), optlevel(optlevel) {}
+ // overload for newpm compatibility
+ PMCreator(TargetMachine &TM, int optlevel, std::vector<std::function<void()>> &) : PMCreator(TM, optlevel) {}
PMCreator(const PMCreator &other) : PMCreator(*other.TM, other.optlevel) {}
PMCreator(PMCreator &&other) : TM(std::move(other.TM)), optlevel(other.optlevel) {}
friend void swap(PMCreator &self, PMCreator &other) {
@@ -1128,16 +1131,21 @@ namespace {
struct PMCreator {
orc::JITTargetMachineBuilder JTMB;
OptimizationLevel O;
- PMCreator(TargetMachine &TM, int optlevel) : JTMB(createJTMBFromTM(TM, optlevel)), O(getOptLevel(optlevel)) {}
+ std::vector<std::function<void()>> &printers;
+ PMCreator(TargetMachine &TM, int optlevel, std::vector<std::function<void()>> &printers) JL_NOTSAFEPOINT : JTMB(createJTMBFromTM(TM, optlevel)), O(getOptLevel(optlevel)), printers(printers) {}
auto operator()() {
- return std::make_unique<NewPM>(cantFail(JTMB.createTargetMachine()), O);
+ auto NPM = std::make_unique<NewPM>(cantFail(JTMB.createTargetMachine()), O);
+ printers.push_back([NPM = NPM.get()]() JL_NOTSAFEPOINT {
+ NPM->printTimers();
+ });
+ return NPM;
}
};
#endif
struct OptimizerT {
- OptimizerT(TargetMachine &TM, int optlevel) : optlevel(optlevel), PMs(PMCreator(TM, optlevel)) {}
+ OptimizerT(TargetMachine &TM, int optlevel, std::vector<std::function<void()>> &printers) : optlevel(optlevel), PMs(PMCreator(TM, optlevel, printers)) {}
OptimizerResultT operator()(orc::ThreadSafeModule TSM, orc::MaterializationResponsibility &R) {
TSM.withModuleDo([&](Module &M) {
@@ -1247,10 +1255,14 @@ llvm::DataLayout jl_create_datalayout(TargetMachine &TM) {
return jl_data_layout;
}
-JuliaOJIT::PipelineT::PipelineT(orc::ObjectLayer &BaseLayer, TargetMachine &TM, int optlevel)
+JuliaOJIT::PipelineT::PipelineT(orc::ObjectLayer &BaseLayer, TargetMachine &TM, int optlevel, std::vector<std::function<void()>> &PrintLLVMTimers)
: CompileLayer(BaseLayer.getExecutionSession(), BaseLayer,
std::make_unique<CompilerT>(orc::irManglingOptionsFromTargetOptions(TM.Options), TM, optlevel)),
- OptimizeLayer(CompileLayer.getExecutionSession(), CompileLayer, OptimizerT(TM, optlevel)) {}
+ OptimizeLayer(CompileLayer.getExecutionSession(), CompileLayer, OptimizerT(TM, optlevel, PrintLLVMTimers)) {}
+
+#ifdef _COMPILER_ASAN_ENABLED_
+int64_t ___asan_globals_registered;
+#endif
JuliaOJIT::JuliaOJIT()
: TM(createTargetMachine()),
@@ -1285,10 +1297,10 @@ JuliaOJIT::JuliaOJIT()
),
#endif
Pipelines{
- std::make_unique<PipelineT>(ObjectLayer, *TM, 0),
- std::make_unique<PipelineT>(ObjectLayer, *TM, 1),
- std::make_unique<PipelineT>(ObjectLayer, *TM, 2),
- std::make_unique<PipelineT>(ObjectLayer, *TM, 3),
+ std::make_unique<PipelineT>(ObjectLayer, *TM, 0, PrintLLVMTimers),
+ std::make_unique<PipelineT>(ObjectLayer, *TM, 1, PrintLLVMTimers),
+ std::make_unique<PipelineT>(ObjectLayer, *TM, 2, PrintLLVMTimers),
+ std::make_unique<PipelineT>(ObjectLayer, *TM, 3, PrintLLVMTimers),
},
OptSelLayer(Pipelines)
{
@@ -1393,6 +1405,11 @@ JuliaOJIT::JuliaOJIT()
reinterpret_cast<void *>(static_cast<uintptr_t>(msan_workaround::MSanTLS::origin)), JITSymbolFlags::Exported);
cantFail(GlobalJD.define(orc::absoluteSymbols(msan_crt)));
#endif
+#ifdef _COMPILER_ASAN_ENABLED_
+ orc::SymbolMap asan_crt;
+ asan_crt[mangle("___asan_globals_registered")] = JITEvaluatedSymbol::fromPointer(&___asan_globals_registered, JITSymbolFlags::Exported);
+ cantFail(JD.define(orc::absoluteSymbols(asan_crt)));
+#endif
}
JuliaOJIT::~JuliaOJIT() = default;
@@ -1583,6 +1600,16 @@ size_t JuliaOJIT::getTotalBytes() const
}
#endif
+void JuliaOJIT::printTimers()
+{
+#ifdef JL_USE_NEW_PM
+ for (auto &printer : PrintLLVMTimers) {
+ printer();
+ }
+#endif
+ reportAndResetTimings();
+}
+
JuliaOJIT *jl_ExecutionEngine;
// destructively move the contents of src into dest
diff --git a/src/jitlayers.h b/src/jitlayers.h
index d8c06df44176f..7f07034586c80 100644
--- a/src/jitlayers.h
+++ b/src/jitlayers.h
@@ -42,9 +42,7 @@
// and feature support (e.g. Windows, JITEventListeners for various profilers,
// etc.). Thus, we currently only use JITLink where absolutely required, that is,
// for Mac/aarch64.
-// #define JL_FORCE_JITLINK
-
-#if defined(_OS_DARWIN_) && defined(_CPU_AARCH64_) || defined(JL_FORCE_JITLINK)
+#if defined(_OS_DARWIN_) && defined(_CPU_AARCH64_) || defined(_COMPILER_ASAN_ENABLED_) || defined(JL_FORCE_JITLINK)
# if JL_LLVM_VERSION < 130000
# pragma message("On aarch64-darwin, LLVM version >= 13 is required for JITLink; fallback suffers from occasional segfaults")
# endif
@@ -91,6 +89,12 @@ struct OptimizationOptions {
}
};
+// LLVM's new pass manager is scheduled to replace the legacy pass manager
+// for middle-end IR optimizations. However, we have not qualified the new
+// pass manager on our optimization pipeline yet, so this remains an optional
+// define
+// #define JL_USE_NEW_PM
+
struct NewPM {
std::unique_ptr<TargetMachine> TM;
StandardInstrumentations SI;
@@ -103,6 +107,8 @@ struct NewPM {
NewPM(std::unique_ptr<TargetMachine> TM, OptimizationLevel O, OptimizationOptions options = OptimizationOptions::defaults());
void run(Module &M);
+
+ void printTimers();
};
struct AnalysisManagers {
@@ -420,7 +426,7 @@ class JuliaOJIT {
std::unique_ptr<WNMutex> mutex;
};
struct PipelineT {
- PipelineT(orc::ObjectLayer &BaseLayer, TargetMachine &TM, int optlevel);
+ PipelineT(orc::ObjectLayer &BaseLayer, TargetMachine &TM, int optlevel, std::vector<std::function<void()>> &PrintLLVMTimers);
CompileLayerT CompileLayer;
OptimizeLayerT OptimizeLayer;
};
@@ -490,6 +496,7 @@ class JuliaOJIT {
TargetIRAnalysis getTargetIRAnalysis() const;
size_t getTotalBytes() const;
+ void printTimers();
JITDebugInfoRegistry &getDebugInfoRegistry() JL_NOTSAFEPOINT {
return DebugRegistry;
@@ -522,6 +529,8 @@ class JuliaOJIT {
jl_locked_stream dump_compiles_stream;
jl_locked_stream dump_llvm_opt_stream;
+ std::vector<std::function<void()>> PrintLLVMTimers;
+
ResourcePool<orc::ThreadSafeContext, 0, std::queue<orc::ThreadSafeContext>> ContextPool;
#ifndef JL_USE_JITLINK
diff --git a/src/pipeline.cpp b/src/pipeline.cpp
index ae2b1c3202f04..4403653a9d8e4 100644
--- a/src/pipeline.cpp
+++ b/src/pipeline.cpp
@@ -146,7 +146,7 @@ namespace {
// Opts.Recover = CodeGenOpts.SanitizeRecover.has(Mask);
// Opts.UseAfterScope = CodeGenOpts.SanitizeAddressUseAfterScope;
// Opts.UseAfterReturn = CodeGenOpts.getSanitizeAddressUseAfterReturn();
- MPM.addPass(RequireAnalysisPass<ASanGlobalsMetadataAnalysis, Module>());
+ // MPM.addPass(RequireAnalysisPass<ASanGlobalsMetadataAnalysis, Module>());
// MPM.addPass(ModuleAddressSanitizerPass(
// Opts, UseGlobalGC, UseOdrIndicator, DestructorKind));
//Let's assume the defaults are actually fine for our purposes
@@ -173,11 +173,13 @@ namespace {
// }
}
- void addVerificationPasses(ModulePassManager &MPM, bool llvm_only) {
+#ifdef JL_DEBUG_BUILD
+ static inline void addVerificationPasses(ModulePassManager &MPM, bool llvm_only) {
if (!llvm_only)
MPM.addPass(llvm::createModuleToFunctionPassAdaptor(GCInvariantVerifierPass()));
MPM.addPass(VerifierPass());
}
+#endif
auto basicSimplifyCFGOptions() {
return SimplifyCFGOptions()
@@ -244,9 +246,9 @@ namespace {
//Use for O1 and below
void buildBasicPipeline(ModulePassManager &MPM, PassBuilder *PB, OptimizationLevel O, OptimizationOptions options) {
-// #ifdef JL_DEBUG_BUILD
+#ifdef JL_DEBUG_BUILD
addVerificationPasses(MPM, options.llvm_only);
-// #endif
+#endif
invokePipelineStartCallbacks(MPM, PB, O);
MPM.addPass(ConstantMergePass());
if (!options.dump_native) {
@@ -320,9 +322,9 @@ static void buildBasicPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimiza
//Use for O2 and above
void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, OptimizationLevel O, OptimizationOptions options) {
-// #ifdef JL_DEBUG_BUILD
+#ifdef JL_DEBUG_BUILD
addVerificationPasses(MPM, options.llvm_only);
-// #endif
+#endif
invokePipelineStartCallbacks(MPM, PB, O);
MPM.addPass(ConstantMergePass());
{
@@ -382,7 +384,7 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
#endif
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
- LPM2.addPass(SimpleLoopUnswitchPass());
+ LPM2.addPass(SimpleLoopUnswitchPass(true, true));
LPM2.addPass(LICMPass(LICMOptions()));
JULIA_PASS(LPM2.addPass(JuliaLICMPass()));
//LICM needs MemorySSA now, so we must use it
@@ -399,7 +401,7 @@ static void buildFullPipeline(ModulePassManager &MPM, PassBuilder *PB, Optimizat
//We don't know if the loop end callbacks support MSSA
FPM.addPass(createFunctionToLoopPassAdaptor(std::move(LPM), /*UseMemorySSA = */false));
}
- FPM.addPass(LoopUnrollPass());
+ FPM.addPass(LoopUnrollPass(LoopUnrollOptions().setRuntime(false)));
JULIA_PASS(FPM.addPass(AllocOptPass()));
FPM.addPass(SROAPass());
FPM.addPass(InstSimplifyPass());
@@ -541,11 +543,8 @@ PIC->addClassToPassName(decltype(CREATE_PASS)::name(), NAME);
// Register the AA manager first so that our version is the one used.
FAM.registerPass([&] JL_NOTSAFEPOINT {
AAManager AA;
- // TODO: Why are we only doing this for -O3?
- if (O.getSpeedupLevel() >= 3) {
- AA.registerFunctionAnalysis<BasicAA>();
- }
if (O.getSpeedupLevel() >= 2) {
+ AA.registerFunctionAnalysis<BasicAA>();
AA.registerFunctionAnalysis<ScopedNoAliasAA>();
AA.registerFunctionAnalysis<TypeBasedAA>();
}
@@ -603,6 +602,10 @@ void NewPM::run(Module &M) {
#endif
}
+void NewPM::printTimers() {
+ SI.getTimePasses().print();
+}
+
OptimizationLevel getOptLevel(int optlevel) {
switch (std::min(std::max(optlevel, 0), 3)) {
case 0:

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d6ac81e1be76ba535e50f2674d6b8cef1ef21c09936978caef69c0d37f6e2485
size 756822

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1f666ff9ec159de9f015a314116b1ca4e275529d86df12064df247fe89e216e6
size 723880

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:58777344b69ab50a019d07e2368df315c94167f759897286ff338a1c3d3e9efb
size 700352

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6df6ebed568d4234146512bc0f0d80ce85d76ed45a649a230562a1d2d57a87a7
size 1271747

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:78f110129efd20e13e72aee990ec27a3b39771a65b3fd570f3d5b8e43333478c
size 1318384

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2616e3b35b6862a218a8fcf651ea00a9860140091e94705967a2fe0404f8ac98
size 1257704

View File

@@ -1,188 +0,0 @@
From 959902f1c6099c1b513e29103b998545c16731fc Mon Sep 17 00:00:00 2001
From: Valentin Churavy <vchuravy@users.noreply.github.com>
Date: Thu, 27 Apr 2023 16:27:09 -0400
Subject: [PATCH] Support both Float16 ABIs depending on LLVM and platform
(#49527)
There are two Float16 ABIs in the wild, one for platforms that have a
defing register and the original one where we used i16.
LLVM 15 follows GCC and uses the new ABI on x86/ARM but not PPC.
Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>
---
src/aotcompile.cpp | 11 +++++++--
src/codegen.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++++
src/jitlayers.cpp | 2 ++
src/llvm-version.h | 10 +++++++++
4 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/src/aotcompile.cpp b/src/aotcompile.cpp
index 391c5d3df46fb..2a14e2a4fa0ab 100644
--- a/src/aotcompile.cpp
+++ b/src/aotcompile.cpp
@@ -494,6 +494,7 @@ static void reportWriterError(const ErrorInfoBase &E)
jl_safe_printf("ERROR: failed to emit output file %s\n", err.c_str());
}
+#if JULIA_FLOAT16_ABI == 1
static void injectCRTAlias(Module &M, StringRef name, StringRef alias, FunctionType *FT)
{
Function *target = M.getFunction(alias);
@@ -510,7 +511,8 @@ static void injectCRTAlias(Module &M, StringRef name, StringRef alias, FunctionT
auto val = builder.CreateCall(target, CallArgs);
builder.CreateRet(val);
}
-
+#endif
+void emitFloat16Wrappers(Module &M, bool external);
// takes the running content that has collected in the shadow module and dump it to disk
// this builds the object file portion of the sysimage files for fast startup
@@ -1003,6 +1006,7 @@ static void add_output_impl(Module &M, TargetMachine &SourceTM, std::string *out
}
if (inject_crt) {
+#if JULIA_FLOAT16_ABI == 1
// We would like to emit an alias or an weakref alias to redirect these symbols
// but LLVM doesn't let us emit a GlobalAlias to a declaration...
// So for now we inject a definition of these functions that calls our runtime
@@ -1018,6 +1023,9 @@ static void add_output_impl(Module &M, TargetMachine &SourceTM, std::string *out
FunctionType::get(Type::getHalfTy(Context), { Type::getFloatTy(Context) }, false));
injectCRTAlias(M, "__truncdfhf2", "julia__truncdfhf2",
FunctionType::get(Type::getHalfTy(Context), { Type::getDoubleTy(Context) }, false));
+#else
+ emitFloat16Wrappers(M, false);
+#endif
#if defined(_OS_WINDOWS_)
// Windows expect that the function `_DllMainStartup` is present in an dll.
diff --git a/src/codegen.cpp b/src/codegen.cpp
index 329c4b452a9dc..f4b0fd518cd39 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -5818,6 +5818,7 @@ static void emit_cfunc_invalidate(
prepare_call_in(gf_thunk->getParent(), jlapplygeneric_func));
}
+#include <iostream>
static Function* gen_cfun_wrapper(
Module *into, jl_codegen_params_t &params,
const function_sig_t &sig, jl_value_t *ff, const char *aliasname,
@@ -8704,6 +8705,58 @@ static JuliaVariable *julia_const_gv(jl_value_t *val)
return nullptr;
}
+// Handle FLOAT16 ABI v2
+#if JULIA_FLOAT16_ABI == 2
+static void makeCastCall(Module &M, StringRef wrapperName, StringRef calledName, FunctionType *FTwrapper, FunctionType *FTcalled, bool external)
+{
+ Function *calledFun = M.getFunction(calledName);
+ if (!calledFun) {
+ calledFun = Function::Create(FTcalled, Function::ExternalLinkage, calledName, M);
+ }
+ auto linkage = external ? Function::ExternalLinkage : Function::InternalLinkage;
+ auto wrapperFun = Function::Create(FTwrapper, linkage, wrapperName, M);
+ wrapperFun->addFnAttr(Attribute::AlwaysInline);
+ llvm::IRBuilder<> builder(BasicBlock::Create(M.getContext(), "top", wrapperFun));
+ SmallVector<Value *, 4> CallArgs;
+ if (wrapperFun->arg_size() != calledFun->arg_size()){
+ llvm::errs() << "FATAL ERROR: Can't match wrapper to called function";
+ abort();
+ }
+ for (auto wrapperArg = wrapperFun->arg_begin(), calledArg = calledFun->arg_begin();
+ wrapperArg != wrapperFun->arg_end() && calledArg != calledFun->arg_end(); ++wrapperArg, ++calledArg)
+ {
+ CallArgs.push_back(builder.CreateBitCast(wrapperArg, calledArg->getType()));
+ }
+ auto val = builder.CreateCall(calledFun, CallArgs);
+ auto retval = builder.CreateBitCast(val,wrapperFun->getReturnType());
+ builder.CreateRet(retval);
+}
+
+void emitFloat16Wrappers(Module &M, bool external)
+{
+ auto &ctx = M.getContext();
+ makeCastCall(M, "__gnu_h2f_ieee", "julia__gnu_h2f_ieee", FunctionType::get(Type::getFloatTy(ctx), { Type::getHalfTy(ctx) }, false),
+ FunctionType::get(Type::getFloatTy(ctx), { Type::getInt16Ty(ctx) }, false), external);
+ makeCastCall(M, "__extendhfsf2", "julia__gnu_h2f_ieee", FunctionType::get(Type::getFloatTy(ctx), { Type::getHalfTy(ctx) }, false),
+ FunctionType::get(Type::getFloatTy(ctx), { Type::getInt16Ty(ctx) }, false), external);
+ makeCastCall(M, "__gnu_f2h_ieee", "julia__gnu_f2h_ieee", FunctionType::get(Type::getHalfTy(ctx), { Type::getFloatTy(ctx) }, false),
+ FunctionType::get(Type::getInt16Ty(ctx), { Type::getFloatTy(ctx) }, false), external);
+ makeCastCall(M, "__truncsfhf2", "julia__gnu_f2h_ieee", FunctionType::get(Type::getHalfTy(ctx), { Type::getFloatTy(ctx) }, false),
+ FunctionType::get(Type::getInt16Ty(ctx), { Type::getFloatTy(ctx) }, false), external);
+ makeCastCall(M, "__truncdfhf2", "julia__truncdfhf2", FunctionType::get(Type::getHalfTy(ctx), { Type::getDoubleTy(ctx) }, false),
+ FunctionType::get(Type::getInt16Ty(ctx), { Type::getDoubleTy(ctx) }, false), external);
+}
+
+static void init_f16_funcs(void)
+{
+ auto ctx = jl_ExecutionEngine->acquireContext();
+ auto TSM = jl_create_ts_module("F16Wrappers", ctx, imaging_default());
+ auto aliasM = TSM.getModuleUnlocked();
+ emitFloat16Wrappers(*aliasM, true);
+ jl_ExecutionEngine->addModule(std::move(TSM));
+}
+#endif
+
static void init_jit_functions(void)
{
add_named_global(jlstack_chk_guard_var, &__stack_chk_guard);
@@ -8942,6 +8995,9 @@ extern "C" JL_DLLEXPORT void jl_init_codegen_impl(void)
jl_init_llvm();
// Now that the execution engine exists, initialize all modules
init_jit_functions();
+#if JULIA_FLOAT16_ABI == 2
+ init_f16_funcs();
+#endif
}
extern "C" JL_DLLEXPORT void jl_teardown_codegen_impl() JL_NOTSAFEPOINT
diff --git a/src/jitlayers.cpp b/src/jitlayers.cpp
index 37302e8ca2ace..b3ec102821858 100644
--- a/src/jitlayers.cpp
+++ b/src/jitlayers.cpp
@@ -1383,6 +1383,7 @@ JuliaOJIT::JuliaOJIT()
JD.addToLinkOrder(GlobalJD, orc::JITDylibLookupFlags::MatchExportedSymbolsOnly);
+#if JULIA_FLOAT16_ABI == 1
orc::SymbolAliasMap jl_crt = {
{ mangle("__gnu_h2f_ieee"), { mangle("julia__gnu_h2f_ieee"), JITSymbolFlags::Exported } },
{ mangle("__extendhfsf2"), { mangle("julia__gnu_h2f_ieee"), JITSymbolFlags::Exported } },
@@ -1391,6 +1392,7 @@ JuliaOJIT::JuliaOJIT()
{ mangle("__truncdfhf2"), { mangle("julia__truncdfhf2"), JITSymbolFlags::Exported } }
};
cantFail(GlobalJD.define(orc::symbolAliases(jl_crt)));
+#endif
#ifdef MSAN_EMUTLS_WORKAROUND
orc::SymbolMap msan_crt;
diff --git a/src/llvm-version.h b/src/llvm-version.h
index 4e15e787b7de8..a3f3774b6dc15 100644
--- a/src/llvm-version.h
+++ b/src/llvm-version.h
@@ -2,6 +2,7 @@
#include <llvm/Config/llvm-config.h>
#include "julia_assert.h"
+#include "platform.h"
// The LLVM version used, JL_LLVM_VERSION, is represented as a 5-digit integer
// of the form ABBCC, where A is the major version, B is minor, and C is patch.
@@ -17,6 +18,15 @@
#define JL_LLVM_OPAQUE_POINTERS 1
#endif
+// Pre GCC 12 libgcc defined the ABI for Float16->Float32
+// to take an i16. GCC 12 silently changed the ABI to now pass
+// Float16 in Float32 registers.
+#if JL_LLVM_VERSION < 150000 || defined(_CPU_PPC64_) || defined(_CPU_PPC_)
+#define JULIA_FLOAT16_ABI 1
+#else
+#define JULIA_FLOAT16_ABI 2
+#endif
+
#ifdef __cplusplus
#if defined(__GNUC__) && (__GNUC__ >= 9)
// Added in GCC 9, this warning is annoying

View File

@@ -1,95 +0,0 @@
From f11bfc6ccad3e07fde4e40493635bd832d108477 Mon Sep 17 00:00:00 2001
From: Valentin Churavy <vchuravy@users.noreply.github.com>
Date: Thu, 27 Apr 2023 16:29:25 -0400
Subject: [PATCH] Use NewPM for ASAN/MSAN (#49530)
Co-authored-by: Gabriel Baraldi <baraldigabriel@gmail.com>
Co-authored-by: Prem Chintalapudi <prem.chintalapudi@gmail.com>
---
src/aotcompile.cpp | 4 ++++
src/cgmemmgr.cpp | 4 ++--
src/jitlayers.h | 13 +++++++++++--
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/aotcompile.cpp b/src/aotcompile.cpp
index 2a14e2a4fa0ab..b89cdf550171f 100644
--- a/src/aotcompile.cpp
+++ b/src/aotcompile.cpp
@@ -1775,6 +1775,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
PM->add(createCFGSimplificationPass(basicSimplifyCFGOptions));
}
}
+#if JL_LLVM_VERSION < 150000
#if defined(_COMPILER_ASAN_ENABLED_)
PM->add(createAddressSanitizerFunctionPass());
#endif
@@ -1783,6 +1784,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
#endif
#if defined(_COMPILER_TSAN_ENABLED_)
PM->add(createThreadSanitizerLegacyPassPass());
+#endif
#endif
return;
}
@@ -1934,6 +1936,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
}
PM->add(createCombineMulAddPass());
PM->add(createDivRemPairsPass());
+#if JL_LLVM_VERSION < 150000
#if defined(_COMPILER_ASAN_ENABLED_)
PM->add(createAddressSanitizerFunctionPass());
#endif
@@ -1943,6 +1946,7 @@ void addOptimizationPasses(legacy::PassManagerBase *PM, int opt_level,
#if defined(_COMPILER_TSAN_ENABLED_)
PM->add(createThreadSanitizerLegacyPassPass());
#endif
+#endif
}
// An LLVM module pass that just runs all julia passes in order. Useful for
diff --git a/src/cgmemmgr.cpp b/src/cgmemmgr.cpp
index 9f4d69137c0fd..15d28ff270c55 100644
--- a/src/cgmemmgr.cpp
+++ b/src/cgmemmgr.cpp
@@ -860,8 +860,8 @@ uint8_t *RTDyldMemoryManagerJL::allocateCodeSection(uintptr_t Size,
StringRef SectionName)
{
// allocating more than one code section can confuse libunwind.
-#if !defined(_COMPILER_MSAN_ENABLED_)
- // TODO: Figure out why msan needs this.
+#if !defined(_COMPILER_MSAN_ENABLED_) && !defined(_COMPILER_ASAN_ENABLED_)
+ // TODO: Figure out why msan and now asan too need this.
assert(!code_allocated);
code_allocated = true;
#endif
diff --git a/src/jitlayers.h b/src/jitlayers.h
index 7f07034586c80..f63f3a42842f1 100644
--- a/src/jitlayers.h
+++ b/src/jitlayers.h
@@ -42,7 +42,14 @@
// and feature support (e.g. Windows, JITEventListeners for various profilers,
// etc.). Thus, we currently only use JITLink where absolutely required, that is,
// for Mac/aarch64.
-#if defined(_OS_DARWIN_) && defined(_CPU_AARCH64_) || defined(_COMPILER_ASAN_ENABLED_) || defined(JL_FORCE_JITLINK)
+// #define JL_FORCE_JITLINK
+
+#if defined(_COMPILER_ASAN_ENABLED_) || defined(_COMPILER_MSAN_ENABLED_) || defined(_COMPILER_TSAN_ENABLED_)
+# define HAS_SANITIZER
+#endif
+// The sanitizers don't play well with our memory manager
+
+#if defined(_OS_DARWIN_) && defined(_CPU_AARCH64_) || defined(JL_FORCE_JITLINK) || JL_LLVM_VERSION >= 150000 && defined(HAS_SANITIZER)
# if JL_LLVM_VERSION < 130000
# pragma message("On aarch64-darwin, LLVM version >= 13 is required for JITLink; fallback suffers from occasional segfaults")
# endif
@@ -93,7 +100,9 @@ struct OptimizationOptions {
// for middle-end IR optimizations. However, we have not qualified the new
// pass manager on our optimization pipeline yet, so this remains an optional
// define
-// #define JL_USE_NEW_PM
+#if defined(HAS_SANITIZER) && JL_LLVM_VERSION >= 150000
+#define JL_USE_NEW_PM
+#endif
struct NewPM {
std::unique_ptr<TargetMachine> TM;

View File

@@ -1,19 +0,0 @@
From: Soc Virnyl Estela <contact@uncomfyhalomacro.pl>
Date: Sat, 09 Dec 2023 16:30:31 +0800
Subject: Julia uses a static variant of its libuv
Although this patch exists as a sample. This won't be used.
---
diff -ruN julia-1.9.4.orig/Make.inc julia-1.9.4/Make.inc
--- julia-1.9.4.orig/Make.inc 2023-12-08 06:25:53.640851723 +0800
+++ julia-1.9.4/Make.inc 2023-12-08 10:44:21.177558348 +0800
@@ -1116,7 +1116,7 @@
endif
ifeq ($(USE_SYSTEM_LIBUV), 1)
- LIBUV := $(LOCALBASE)/lib/libuv-julia.a
+ LIBUV := -luv
LIBUV_INC := $(LOCALBASE)/include
else
LIBUV := $(build_libdir)/libuv.a