Compare commits
86 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
|
|
4dcb1676aa | ||
|
|
92e1efafd8 | ||
|
|
8a73827f4d | ||
|
|
eada458b47 | ||
|
|
aa0db38925 | ||
|
|
4de51524dc | ||
|
|
6e1e5d09eb | ||
|
|
f691daedec | ||
|
|
914dea4d24 | ||
|
|
e6aa9798cb | ||
|
|
2f82b637f9 | ||
|
|
0396877830 | ||
|
|
2526fd37aa | ||
|
|
b40a93bb55 | ||
|
|
413e837963 | ||
|
|
a45ad2fc74 | ||
|
|
d8b0dadc0e | ||
|
|
ee3f287ff2 | ||
|
|
ecc110fc42 | ||
|
|
22d2552e66 | ||
|
|
09c1ff014e | ||
|
|
a47067481e | ||
|
|
7bdaa0ddfd | ||
|
|
d8d3003d3b | ||
|
|
c76c54a2be | ||
|
|
f5387b0639 | ||
|
|
5133d79ea3 | ||
|
|
6bc8987180 | ||
|
|
d9d7536b4e | ||
|
|
22eb6ccfb2 | ||
|
|
10340af720 | ||
|
|
c8547add34 | ||
|
|
2c70633a24 | ||
|
|
e9ffa9a3f5 | ||
|
|
05f73e3e49 | ||
|
|
90f849051c | ||
|
|
c2afc4e43f | ||
|
|
cd38daa1e0 | ||
|
|
d0232c68ac | ||
|
|
c58fe8db7f | ||
|
|
93388887ec | ||
|
|
24023b3b6e | ||
|
|
1a5a6ef0b1 | ||
|
|
6ca3168b62 | ||
|
|
85bb11b0e5 | ||
|
|
c75a868f1f | ||
|
|
08cf81634d | ||
|
|
d8d78ceb7e | ||
|
|
6db6c55ba4 | ||
|
|
7229dd077b | ||
|
|
46a381163a | ||
|
|
808176258d | ||
|
|
b5e0c59cc3 | ||
|
|
e0f34ca192 | ||
|
|
2d64c94fd7 | ||
|
|
77964849fa | ||
|
|
bc9d7d6db3 | ||
|
|
74414cc069 | ||
|
|
2103d852bf | ||
|
|
52fdc67b8d | ||
|
|
a37dafadcd | ||
|
|
48614aa527 | ||
|
|
e88e5b734f | ||
|
|
9d5dfaa745 | ||
|
|
4c38c2a201 | ||
|
|
06daacca04 | ||
|
|
c06fa8e10b | ||
|
|
b5e3233d6d | ||
|
|
d35db44101 | ||
|
|
fa5dd41c9e | ||
|
|
865ebe9861 | ||
|
|
9b9639b1e7 | ||
|
|
87ad15e798 | ||
|
|
882ed055c0 | ||
|
|
83259f43d1 | ||
|
|
700ff40916 | ||
|
|
394a4c75d6 | ||
|
|
602e266549 | ||
|
|
6f1cf77511 | ||
|
|
ed509875fd | ||
|
|
fafc896218 | ||
|
|
30223c5b30 | ||
|
|
ea3e6cc364 | ||
|
|
1b234d86b2 | ||
|
|
4476154cd0 | ||
|
|
6a9b9d98ab |
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d7afaf2ef1b60e4131f0f6afd16561fbe09cc3276a4805ba45bf06f08d63ae0f
|
||||
size 20763581
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7936acdfae16b6e944bbf87375c23b6dd0deceb90d625917fa7024b094968a11
|
||||
size 21275184
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8e72a9e5bf0b849011f3707671dc19bcbc40f6fa7b21cfb290d26b4bd2aed877
|
||||
size 22932730
|
||||
3
GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz
Normal file
3
GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a6a159f3f4f6e1e79c6af19ab446257f798efd066c5b2ab3ea2c8db68a0f18bc
|
||||
size 445144
|
||||
3
GMP.v6.2.1+6.powerpc64le-linux-gnu-cxx11.tar.gz
Normal file
3
GMP.v6.2.1+6.powerpc64le-linux-gnu-cxx11.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c47825e55c671de055c0e61d289d463230834edfc3920a67ef62eb4b8527e058
|
||||
size 476586
|
||||
3
GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz
Normal file
3
GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cb20b68a814c37fa091f38a83f160c5025ecf3234401758c9ca820b10adc58b0
|
||||
size 528807
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6c54e2c5500731f3c3703b592a97d9bf3e63ef0d30aab9106d8531f2a8cc1204
|
||||
size 4914229
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:628e331c5e9515f678419047c61bb5cbfe31d7f4d5c5fc988b035110e8dce9b1
|
||||
size 5326792
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be83e539493fe532f65bcd3220a7704ceae8fd9ef5dca64ff169b50ee083aee2
|
||||
size 5231424
|
||||
3
LibCURL.v8.4.0+0.aarch64-linux-gnu.tar.gz
Normal file
3
LibCURL.v8.4.0+0.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:47063bdbf7a700422211a56eac5ceecad1134c37162c43aac248c779aeb74563
|
||||
size 707448
|
||||
3
LibCURL.v8.4.0+0.powerpc64le-linux-gnu.tar.gz
Normal file
3
LibCURL.v8.4.0+0.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f76cc3f148e278170cbccf4d2f23842f61c06b0ccfad16209b2faa284a582a45
|
||||
size 747133
|
||||
3
LibCURL.v8.4.0+0.x86_64-linux-gnu.tar.gz
Normal file
3
LibCURL.v8.4.0+0.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e09a6e894971a7d390d578ce61e73297865321afae4e2d7d751ea1cc205d5517
|
||||
size 749418
|
||||
3
LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz
Normal file
3
LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d729cee7318431c7ec3d641bbaecfb2285395a985c55df905d14b92879bd3eac
|
||||
size 856789
|
||||
3
LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz
Normal file
3
LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e81dfd183d2af8cb4c19fd12f17e03b2d5580c7a460addc0c1aaf6315548feb5
|
||||
size 955285
|
||||
3
LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz
Normal file
3
LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:927ae04d2bbd6cabf064d161beb02af8e04a5077a5028539f75500b2af3a7642
|
||||
size 952168
|
||||
3
LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz
Normal file
3
LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4677fdc4c3b673456d3a4d129821383d69d736d95dcaeaabe8f3a760efcb9a33
|
||||
size 410826
|
||||
3
LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8565ee46336ba53e930730a66e35523dcd27a3c52d4024ad04ed680545584d5b
|
||||
size 441415
|
||||
3
LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz
Normal file
3
LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:51ea9f9fb5a5f736db6ec645c782540685e3740dbe99ad8cde3d96029dc3c7f9
|
||||
size 431463
|
||||
3
LibUV.v2.0.1+14.aarch64-linux-gnu.tar.gz
Normal file
3
LibUV.v2.0.1+14.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6cdf3c08e18925d632601796d8ab3022519c7f1a5e68b4b1a6eea644348cef56
|
||||
size 693211
|
||||
3
LibUV.v2.0.1+14.powerpc64le-linux-gnu.tar.gz
Normal file
3
LibUV.v2.0.1+14.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86e5d2ffa8c07c7101bb291b211486dbfc15deb24aec68af3a3727ee60a6e589
|
||||
size 649465
|
||||
3
LibUV.v2.0.1+14.x86_64-linux-gnu.tar.gz
Normal file
3
LibUV.v2.0.1+14.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d346e1bb7e711ecd57268977963e9d6ad5756de4da76eb47513f949bb8fde751
|
||||
size 622742
|
||||
3
LibUnwind.v1.5.0+5.aarch64-linux-gnu.tar.gz
Normal file
3
LibUnwind.v1.5.0+5.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:16cf1d96c775a6195451a8402f96ac61e19125ac4841bd9b4d6c6c7f589482bf
|
||||
size 1283293
|
||||
3
LibUnwind.v1.5.0+5.powerpc64le-linux-gnu.tar.gz
Normal file
3
LibUnwind.v1.5.0+5.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a2f95e19da0bc2162619eb9e714e8f2e55d13bd6a2db7859943386853692f2d5
|
||||
size 1086558
|
||||
3
LibUnwind.v1.5.0+5.x86_64-linux-gnu.tar.gz
Normal file
3
LibUnwind.v1.5.0+5.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9aa77c84e6cd934512cd713e53592f7deef6776da544af858e95a55e277bdf20
|
||||
size 1208108
|
||||
3
MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz
Normal file
3
MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:87118c29a52fc11fffd56829a2de0298da514bbd125aaaf6a08937e666687006
|
||||
size 884650
|
||||
3
MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be1b3270c1b2e3c417dbfe23b0dd70acb7c5eca493ec4122cb441514dd27c960
|
||||
size 921950
|
||||
3
MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz
Normal file
3
MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:612de389397df50248bf882d1ca4419e20417e058986263de6cf4f4c84fdb4d1
|
||||
size 891545
|
||||
3
MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz
Normal file
3
MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a08415399b0c1be7b0c4e4ecc8edfc4d11e31c98b9a152a80d639e3efff7c120
|
||||
size 2097771
|
||||
3
MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6e46314ab56c694e4da7d3c7df018c27d0554f5370fea2258c000a23e90382fe
|
||||
size 2253652
|
||||
3
MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz
Normal file
3
MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a31ed4ff6032ad2c3ec1afae9c6a668618973b2380d3a7bf65e92e83a210415e
|
||||
size 2178218
|
||||
3
OpenBLAS.v0.3.23+4.aarch64-linux-gnu-libgfortran5.tar.gz
Normal file
3
OpenBLAS.v0.3.23+4.aarch64-linux-gnu-libgfortran5.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:30a374c4f157c49af80b51f2733a94f2a6a1c3444ed68194fa53c6204e9b35bd
|
||||
size 7439063
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ca302adb7ff19ea8defe2c84ceffd0db735394212ba9afdd714c967de1f9d5fe
|
||||
size 6638089
|
||||
3
OpenBLAS.v0.3.23+4.x86_64-linux-gnu-libgfortran5.tar.gz
Normal file
3
OpenBLAS.v0.3.23+4.x86_64-linux-gnu-libgfortran5.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1961f07a0708e837467b47ce844249a1d58cb1d319cc09b6f4ca112e797968a5
|
||||
size 9531958
|
||||
3
OpenLibm.v0.8.1+2.aarch64-linux-gnu.tar.gz
Normal file
3
OpenLibm.v0.8.1+2.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4ae803cabe094675aafccb590e47e0c5e682be787b9aa70d8dc97186d300016b
|
||||
size 329479
|
||||
3
OpenLibm.v0.8.1+2.powerpc64le-linux-gnu.tar.gz
Normal file
3
OpenLibm.v0.8.1+2.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:884461cb9037cb383fbee6e92f0e1f8c5a7f0b8420fcf5c10d3c3c060a7d2b70
|
||||
size 201113
|
||||
3
OpenLibm.v0.8.1+2.x86_64-linux-gnu.tar.gz
Normal file
3
OpenLibm.v0.8.1+2.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:164a5349b6cdcce409e5277afb752b8f4a270b98229d0ab5d626848e7dbdb86e
|
||||
size 268364
|
||||
3
PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz
Normal file
3
PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cda05df078a687378d2e957767bfcd977fbb154381b495d25f96f8611ad2f4cd
|
||||
size 2166988
|
||||
3
PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ab4757a03fb81e6db6b2dff255350fe65857361a647cca59dda0e792d65ff0c
|
||||
size 2339780
|
||||
3
PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz
Normal file
3
PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0d18594db4906bdc81af7ebea8f1b6357394189b2e586bf9ef2225ce858636a2
|
||||
size 2332880
|
||||
3
SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
Normal file
3
SuiteSparse.v7.2.1+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fb163789fd69ee871e570add5d98f7cddcd5706cb7af704e4aaec3f14688bb42
|
||||
size 1369667
|
||||
3
SuiteSparse.v7.2.1+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
SuiteSparse.v7.2.1+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a175a680cbccb574b5ad17b2c98b833918249e1e5a1f024ba4f53aecb90b288a
|
||||
size 1571419
|
||||
3
SuiteSparse.v7.2.1+1.x86_64-linux-gnu.tar.gz
Normal file
3
SuiteSparse.v7.2.1+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc5a6683cd8d9d6712d34c6bc7d02beac38c9da3aec5ccf392baf58dbb862893
|
||||
size 1476769
|
||||
33797
UnicodeData.txt
Normal file
33797
UnicodeData.txt
Normal file
File diff suppressed because it is too large
Load Diff
3
Zlib.v1.2.13+1.aarch64-linux-gnu.tar.gz
Normal file
3
Zlib.v1.2.13+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bf861aa618865fb20ca228c42370ca6bd6aefeb5291954f7c4cbd28b0c9a5a27
|
||||
size 146800
|
||||
3
Zlib.v1.2.13+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
Zlib.v1.2.13+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e73e8d611ac5c850b796dfb637ac31e5b9ef2e9b9c7e2c93f504c74987f50ad9
|
||||
size 152417
|
||||
3
Zlib.v1.2.13+1.x86_64-linux-gnu.tar.gz
Normal file
3
Zlib.v1.2.13+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:46678eabc97358858872a85192903f427288f9ea814bddc6b3e81a8681b63da4
|
||||
size 156413
|
||||
15
apply-gmp-arm64-invert_limb.patch
Normal file
15
apply-gmp-arm64-invert_limb.patch
Normal 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 > $@
|
||||
|
||||
3
dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz
Normal file
3
dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fd2147de47079f541abf1e740c89fd5428a83b23b42137b7d1ffa19d3e1c0076
|
||||
size 7210
|
||||
3
dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz
Normal file
3
dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d5308c8331dbff504ad695fc9ca97724f407ade82af24ecda7471c95c554e354
|
||||
size 9039
|
||||
3
dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz
Normal file
3
dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:438e961781bfa19a281c610a92755d53182f8da0c093aa529451e58e7379b382
|
||||
size 6617
|
||||
20
disable-doc-gen-in-makefile.patch
Normal file
20
disable-doc-gen-in-makefile.patch
Normal 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."
|
||||
11
disable-download-of-unicode-for-doc-gen.patch
Normal file
11
disable-download-of-unicode-for-doc-gen.patch
Normal 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) "$<"
|
||||
14
gmp-6.2.1-arm64-invert_limb.patch
Normal file
14
gmp-6.2.1-arm64-invert_limb.patch
Normal 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
3
julia-1.10.5-full.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5fc94159b87f34d18bf44a1a940e59f40cbeab931bfdc0c4763203bbb6995260
|
||||
size 318683963
|
||||
17
julia-1.10.5-full.tar.gz.asc
Normal file
17
julia-1.10.5-full.tar.gz.asc
Normal 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-----
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:61843b9647fd06d3b2994f3277a64de1cb5a5a5297d930b8c8e3bc0e93740024
|
||||
size 294983229
|
||||
@@ -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__()
|
||||
|
||||
@@ -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)
|
||||
@@ -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);
|
||||
29
julia-remove-libcholmod_cuda.patch
Normal file
29
julia-remove-libcholmod_cuda.patch
Normal 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
|
||||
@@ -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*")
|
||||
|
||||
@@ -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
|
||||
673
julia.changes
673
julia.changes
@@ -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
51
julia.keyring
Normal 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-----
|
||||
763
julia.spec
763
julia.spec
@@ -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
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b77adbc404ff08702add49c010ca1560d3d8cbb706f82efb3b3e71a71912b8d1
|
||||
size 78372324
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b10f2cade3358fb97e3657f1b71442a481045b395742e6196b99dfe5012b73d
|
||||
size 82317366
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fcf860092982bc4855117bb16d9efa7b98f62adfcd574a0e6969526407fd2f17
|
||||
size 85634590
|
||||
@@ -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__()
|
||||
3
libblastrampoline.v5.11.0+0.aarch64-linux-gnu.tar.gz
Normal file
3
libblastrampoline.v5.11.0+0.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ba0894300292bff7c740736f3b54f9323ef09a6f62c0c9434e1a9350da484fed
|
||||
size 812862
|
||||
3
libblastrampoline.v5.11.0+0.powerpc64le-linux-gnu.tar.gz
Normal file
3
libblastrampoline.v5.11.0+0.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c349bf6bc5e6d4ac78aa545411c76744bc571b83ca9bfd1d69059f000b15a592
|
||||
size 880007
|
||||
3
libblastrampoline.v5.11.0+0.x86_64-linux-gnu.tar.gz
Normal file
3
libblastrampoline.v5.11.0+0.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c29d2d46aaa67a5a6b69e990f6af5c857a2375c454c5102dd8175701b77c240c
|
||||
size 869004
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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__()
|
||||
25
mpfr-looking-for-gmp-fix.patch
Normal file
25
mpfr-looking-for-gmp-fix.patch
Normal 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
|
||||
@@ -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:
|
||||
3
nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz
Normal file
3
nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d6ac81e1be76ba535e50f2674d6b8cef1ef21c09936978caef69c0d37f6e2485
|
||||
size 756822
|
||||
3
nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
3
nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1f666ff9ec159de9f015a314116b1ca4e275529d86df12064df247fe89e216e6
|
||||
size 723880
|
||||
3
nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz
Normal file
3
nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:58777344b69ab50a019d07e2368df315c94167f759897286ff338a1c3d3e9efb
|
||||
size 700352
|
||||
3
p7zip.v17.4.0+2.aarch64-linux-gnu.tar.gz
Normal file
3
p7zip.v17.4.0+2.aarch64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6df6ebed568d4234146512bc0f0d80ce85d76ed45a649a230562a1d2d57a87a7
|
||||
size 1271747
|
||||
3
p7zip.v17.4.0+2.powerpc64le-linux-gnu.tar.gz
Normal file
3
p7zip.v17.4.0+2.powerpc64le-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:78f110129efd20e13e72aee990ec27a3b39771a65b3fd570f3d5b8e43333478c
|
||||
size 1318384
|
||||
3
p7zip.v17.4.0+2.x86_64-linux-gnu.tar.gz
Normal file
3
p7zip.v17.4.0+2.x86_64-linux-gnu.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2616e3b35b6862a218a8fcf651ea00a9860140091e94705967a2fe0404f8ac98
|
||||
size 1257704
|
||||
@@ -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 ¶ms,
|
||||
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
|
||||
@@ -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;
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user