forked from pool/julia
- Cleanup specfile
* Use autosetup * Remove patches that are not needed anymore - llvm-link-shared.patch - llvm-set-of-custom-patches.patch - new-pass-manager.patch - support-float16-depending-on-llvm-and-platform.patch - use-newpm-asan.patch - fix-dependencies-checksums.patch OBS-URL: https://build.opensuse.org/package/show/science/julia?expand=0&rev=176
This commit is contained in:
parent
118a3c30c3
commit
c156e29ea0
@ -1,266 +0,0 @@
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/dsfmt julia-1.10.2/deps/checksums/dsfmt
|
||||
--- julia-1.10.2.orig/deps/checksums/dsfmt 2024-04-24 18:01:11.227525758 +0800
|
||||
+++ julia-1.10.2/deps/checksums/dsfmt 2024-05-01 22:50:48.317888755 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
dSFMT.v2.2.4+4.aarch64-apple-darwin.tar.gz/md5/43b52709b7794c92931286174854c886
|
||||
dSFMT.v2.2.4+4.aarch64-apple-darwin.tar.gz/sha512/018b67a06cdf42dda2a906025e8a12e026af9b39fe8281890dc90d66a422c3af2a8430d42677f79d123fd0ab0e8d5c37db2e0a00ef03731d35cbb65f9e59b108
|
||||
-dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz/md5/260e14855dbc7773a2ca906d58cc57f2
|
||||
-dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz/sha512/820ca4c6afde931e855b74015150f4ffbb513276c3fa7dbcc1ec8d34c02d4989fb7424a6e4f81f93d054811b5f54f8633d955b05acdb088387ee90f1c3b00915
|
||||
+dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz/md5/ed30e63552d62df48d709dde4f755660
|
||||
+dSFMT.v2.2.4+4.aarch64-linux-gnu.tar.gz/sha512/fe84e986cbf198172340adfac0436b08f087643eca3f1ceccacde146cbfd8c41e3eb0dfbb062f7ca5f462db13c386abd7c269bc0cbefc9a0ecf97a8a8870a2e4
|
||||
dSFMT.v2.2.4+4.aarch64-linux-musl.tar.gz/md5/7ddccbad6b5c9de4be187fe76637a0d8
|
||||
dSFMT.v2.2.4+4.aarch64-linux-musl.tar.gz/sha512/e3c225da00927096e3a6cd4abc681fba8f469cb74828e7054d4f5684d71dcb8e75c9a81f14fa10bfbb78f62f9567a31a92edcca8d797e5810a2a44a3fc17bc84
|
||||
dSFMT.v2.2.4+4.armv6l-linux-gnueabihf.tar.gz/md5/a70329e0a6c57009c6b6950fd34089f6
|
||||
@@ -22,8 +22,8 @@
|
||||
dSFMT.v2.2.4+4.powerpc64le-linux-gnu.tar.gz/sha512/1bd0ebd019cfc6f25f7ba007547c5ee297854655b93c55e90d8ead420875de5a087e38956693d5e901ff2abf667c72aa66fb34f587b82adf4b91b3d5d666b5c7
|
||||
dSFMT.v2.2.4+4.x86_64-apple-darwin.tar.gz/md5/b57ec1491ffdd40c72860b9f1869160c
|
||||
dSFMT.v2.2.4+4.x86_64-apple-darwin.tar.gz/sha512/c3a192dbcd3e768712d12d3ac851f46bfa1517eca16c9a187025553076c8fb886b925e4e3f5f20531180f72b73e7eaa5281f54d5b7d4e6a4d53f4542c4bb33b6
|
||||
-dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz/md5/fa671f4ca14b171d53c8866d03f9162a
|
||||
-dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz/sha512/2e242a1448da0508ea88cc1a106f1e74f8d7e7562cd82b80d86abf9a8b454653ad7612e25c30ce00c23757e8a5b7b5736253b00a52f9473af6c5d4df768138f2
|
||||
+dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz/md5/ed30e63552d62df48d709dde4f755660
|
||||
+dSFMT.v2.2.4+4.x86_64-linux-gnu.tar.gz/sha512/fe84e986cbf198172340adfac0436b08f087643eca3f1ceccacde146cbfd8c41e3eb0dfbb062f7ca5f462db13c386abd7c269bc0cbefc9a0ecf97a8a8870a2e4
|
||||
dSFMT.v2.2.4+4.x86_64-linux-musl.tar.gz/md5/c648294163882ec539ab646542c74880
|
||||
dSFMT.v2.2.4+4.x86_64-linux-musl.tar.gz/sha512/9e96a47d660854b6517364f0db40a2f4e0e3b814499a0349f7cf550b1c8d04589fca5eb4a75bf34f36d1b5d1b2277b3e9a961c887092abedd08f438e025329e7
|
||||
dSFMT.v2.2.4+4.x86_64-unknown-freebsd.tar.gz/md5/b4497d34d72ce134ce110b6185a82393
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/gmp julia-1.10.2/deps/checksums/gmp
|
||||
--- julia-1.10.2.orig/deps/checksums/gmp 2024-04-24 18:01:11.227525758 +0800
|
||||
+++ julia-1.10.2/deps/checksums/gmp 2024-04-27 18:40:27.833607753 +0800
|
||||
@@ -2,8 +2,8 @@
|
||||
GMP.v6.2.1+6.aarch64-apple-darwin.tar.gz/sha512/5c7927ecfd47409dd4116cd4209768294ba229b51472ed220da498823dc1e7f9100292ec4b3a990491acd27f16ce3a3dce7a7c6e20dcd515982a9c8e364d91bc
|
||||
GMP.v6.2.1+6.aarch64-linux-gnu-cxx03.tar.gz/md5/0d0d2ee67cff251941e3474341280b34
|
||||
GMP.v6.2.1+6.aarch64-linux-gnu-cxx03.tar.gz/sha512/69fb2f1476e0bb73f89ad2f73b58ec4da1b99e099124666e6da93b7705fde23913daa59f2ad479f99fcb4f0df152603bb0ba4875420b583f01fded0fec280a15
|
||||
-GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz/md5/86ba1313c8ab4ca1ae8313cbf96e1e7d
|
||||
-GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz/sha512/05c306c01d1b0e9e4dc7ce937075eeaede4e5e0791826a8892fae2eb73cdb7f22c4873cf31cea3cfe3db996ac77387346f4f8a851ce52c29883146678f3851fd
|
||||
+GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz/md5/28971fc21cf028042d4897f02fd355ea
|
||||
+GMP.v6.2.1+6.aarch64-linux-gnu-cxx11.tar.gz/sha512/8904334a3bcc5c896ececabc75cda9dec642e401fb5397c4992c4fabea5e962c9ce8bd44e8e4233c34e55c8010cc28db0545f5f750cbdbb5f00af538dc763be9
|
||||
GMP.v6.2.1+6.aarch64-linux-musl-cxx03.tar.gz/md5/2fbbb9adee7db794f5888442b7b7688c
|
||||
GMP.v6.2.1+6.aarch64-linux-musl-cxx03.tar.gz/sha512/d8a1719e529374d00ba6372013d0c7ddc9f44f9f6ee0f966b4ed16d731ce74c26b6e6a807403b3396bed67dd3e775e18c1e70c247a371d622a6e7013eb6b8905
|
||||
GMP.v6.2.1+6.aarch64-linux-musl-cxx11.tar.gz/md5/b6a8c494d4c90decb6eacbca3ce3f22a
|
||||
@@ -44,8 +44,8 @@
|
||||
GMP.v6.2.1+6.x86_64-apple-darwin.tar.gz/sha512/f914452a49988b0694915483547c2f878c0ba71be2079fd1228b3e583cb08e92d8c958a052f29025054ded74cacb699893a5a6ef27749c851e83607ad3f1fe8f
|
||||
GMP.v6.2.1+6.x86_64-linux-gnu-cxx03.tar.gz/md5/cded149fcef93ab1ba89c51d7cc58b73
|
||||
GMP.v6.2.1+6.x86_64-linux-gnu-cxx03.tar.gz/sha512/8f97582d6323df6f86e3079b9a2534425bd4e64bb4cec337c21059605d50c1220fd006e55bdb34e8aa7195cd79ef518f1541c1b1a92187ed928f7939b3128dd6
|
||||
-GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz/md5/0529bb60dcf584222cd91e9e11510f24
|
||||
-GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz/sha512/0532821e81a4e51363570f87ec59c37dea24cab59a94e43127837ce4b388d1951853d50e52d4c9f30b4a21cfe222e368207239ce8ac0f1ee1e9375f51fb10127
|
||||
+GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz/md5/28971fc21cf028042d4897f02fd355ea
|
||||
+GMP.v6.2.1+6.x86_64-linux-gnu-cxx11.tar.gz/sha512/8904334a3bcc5c896ececabc75cda9dec642e401fb5397c4992c4fabea5e962c9ce8bd44e8e4233c34e55c8010cc28db0545f5f750cbdbb5f00af538dc763be9
|
||||
GMP.v6.2.1+6.x86_64-linux-musl-cxx03.tar.gz/md5/2d332d096da5515581ee92128aff88ab
|
||||
GMP.v6.2.1+6.x86_64-linux-musl-cxx03.tar.gz/sha512/b17f7b762bd4d61fa4c4be8124275c2b337383da167bdeaca34e44d71f20716b182b46bc5a6714a798a0951d73b335ab9c87f451cf4c5456edbe76cf3ad36ba4
|
||||
GMP.v6.2.1+6.x86_64-linux-musl-cxx11.tar.gz/md5/a9dae953f9d59589162a3ea149c46d1e
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/libgit2 julia-1.10.2/deps/checksums/libgit2
|
||||
--- julia-1.10.2.orig/deps/checksums/libgit2 2024-04-24 18:01:11.227525758 +0800
|
||||
+++ julia-1.10.2/deps/checksums/libgit2 2024-04-26 22:13:07.302294591 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
LibGit2.v1.6.4+0.aarch64-apple-darwin.tar.gz/md5/dd001ebe432b91c4043739a0aa14d3bf
|
||||
LibGit2.v1.6.4+0.aarch64-apple-darwin.tar.gz/sha512/c921c9b7b4cba17c98a7f07e003cb9279ae40346e2977a0c2e257c6f6927726f09d0339e139e3a138ed84e169e00d459502a90724077cb253d52ec39a3766c28
|
||||
-LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz/md5/a044b38cc6396221c4687dc0723b33fd
|
||||
-LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz/sha512/dd804c31645873f18f612920d1e4d4d7adfc828f8d96c8f03ce4e4c856608663ccd26ec9bfae30cd499cefd02b3b7ae648b8617b3d3de9364fbfea094777e7e4
|
||||
+LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz/md5/08777cc257825f218ceac1a24abafdc9
|
||||
+LibGit2.v1.6.4+0.aarch64-linux-gnu.tar.gz/sha512/ebeaf3bb12ce7d58cd6d36e0123168de3af8f083f707dc20df9781537e38188a176667ac51daf8d9006d54f2beed13fbfff6c26fbb48e3228988578ef8fbc9b7
|
||||
LibGit2.v1.6.4+0.aarch64-linux-musl.tar.gz/md5/8b15c173d188ef2d0bbe1cbd2fe25a0e
|
||||
LibGit2.v1.6.4+0.aarch64-linux-musl.tar.gz/sha512/a1ddb011a92e8ab0ed6d005d354af23261c5c7949d43b610ba24867bb8065c73820326d14dba069a7d1497758e8c6e1a26a92c7e4c345c75cac2c6d9a7ddfbc0
|
||||
LibGit2.v1.6.4+0.armv6l-linux-gnueabihf.tar.gz/md5/8d49bb6c15477fa167519477ba43ccb4
|
||||
@@ -22,8 +22,8 @@
|
||||
LibGit2.v1.6.4+0.powerpc64le-linux-gnu.tar.gz/sha512/7edff494558501245b575fb4d42e2279d98c4ad9ccbc625149db8bbbd379cbe5054b6369149dc1a66f5c91ba21a5609f3971a31cea5f0f7a16e67e991496f8cb
|
||||
LibGit2.v1.6.4+0.x86_64-apple-darwin.tar.gz/md5/c0b79aad1765e0841d229d62dcf34105
|
||||
LibGit2.v1.6.4+0.x86_64-apple-darwin.tar.gz/sha512/1c3d0f696fe3fe5fa3269057c3d1863e84aff002a142f088129efc6e0e9f32df5db609732e4ad6c6ddf7a2c3f0b7ed53a06c9f4d49b518c0aa960ed04c71e6f2
|
||||
-LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz/md5/397c71f23f48eb8395c9e0a605bd3696
|
||||
-LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz/sha512/9b785ff277206988d60fbd105beaaeae49b4fa057e1d52f95f4b7a1eff5eceb4525a7a9015823bada6329d0a6b3be8e8ca94221c3b98b287d077b524aa4a517f
|
||||
+LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz/md5/08777cc257825f218ceac1a24abafdc9
|
||||
+LibGit2.v1.6.4+0.x86_64-linux-gnu.tar.gz/sha512/ebeaf3bb12ce7d58cd6d36e0123168de3af8f083f707dc20df9781537e38188a176667ac51daf8d9006d54f2beed13fbfff6c26fbb48e3228988578ef8fbc9b7
|
||||
LibGit2.v1.6.4+0.x86_64-linux-musl.tar.gz/md5/e7404be38fa8c10740101c5ca1ed9bfd
|
||||
LibGit2.v1.6.4+0.x86_64-linux-musl.tar.gz/sha512/a2902d50a17c8f61ec5d38d0d843443be2ce4f51292655961d685203860a8f2d098e4dffb10f46f885cc4df1e9f1a5237be2cb31950d9e4a073a78ca82e39989
|
||||
LibGit2.v1.6.4+0.x86_64-unknown-freebsd.tar.gz/md5/5f370e6f38b38e663dc47b59f295b3b1
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/libssh2 julia-1.10.2/deps/checksums/libssh2
|
||||
--- julia-1.10.2.orig/deps/checksums/libssh2 2024-04-24 18:01:11.227525758 +0800
|
||||
+++ julia-1.10.2/deps/checksums/libssh2 2024-04-27 08:28:00.375572375 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
LibSSH2.v1.11.0+1.aarch64-apple-darwin.tar.gz/md5/462442a50f5dd719d251f65e7170dbf6
|
||||
LibSSH2.v1.11.0+1.aarch64-apple-darwin.tar.gz/sha512/8f0d9916c1e1abb8ba2d4baef0f850f9f5aa8d24f5eeefd7c7d30697b15d33180b32588f50328f4999e1d4136a2951c4e3319c5a5dca6f34a84fba30ac90518f
|
||||
-LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz/md5/63d8a681bcce23e76650719cf3c6999b
|
||||
-LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz/sha512/9dc722d866d27f378481e4787a5bb932facc0c7b828e75e812c9c875ac10e7194d090d94e01a46bb2b3c5624e18d013f0226c5f574269df96f1de0ed16897571
|
||||
+LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz/md5/7b52de6ff70e16aa78cd699fee3e997a
|
||||
+LibSSH2.v1.11.0+1.aarch64-linux-gnu.tar.gz/sha512/7c99d33e60862e2d89bbcc4a09ffff3fbfb921ed674e0d3166a255c72a8e0622a9c6be64f0eb2f8c12ddd80da0307b05d761615b876194bd854aa2c62e26f4ad
|
||||
LibSSH2.v1.11.0+1.aarch64-linux-musl.tar.gz/md5/e85cfee900145726857d3609b541f7b5
|
||||
LibSSH2.v1.11.0+1.aarch64-linux-musl.tar.gz/sha512/ad42ddf4674f6359e61fb23ef6fb5942e716c6f0cd50378e93b8c3af799b9b21cc9cefc471d27e19bc31686c7aa469a5ed81918ea9926d5d432c3c5f70e83fcb
|
||||
LibSSH2.v1.11.0+1.armv6l-linux-gnueabihf.tar.gz/md5/acb3b46ec386e9d41dd73cb3c9b60d1e
|
||||
@@ -22,8 +22,8 @@
|
||||
LibSSH2.v1.11.0+1.powerpc64le-linux-gnu.tar.gz/sha512/d8794571d051cf206da87a4f7f0f71c8b41be061691b08333df7678c4e40fb9abbe63812a5ff5243fabca9eb2e599d81a69520cd854afbddbc16b44678fbe1b7
|
||||
LibSSH2.v1.11.0+1.x86_64-apple-darwin.tar.gz/md5/5729492b3a91e0d8e3fcc459de784157
|
||||
LibSSH2.v1.11.0+1.x86_64-apple-darwin.tar.gz/sha512/8e49b2ff1c9b5ae499f14be238776d7da2b64231592f1d46a6f769f200681342ff157d76102fa7c16b2972c7fe603919f7d2ce7c8a30b46c98ecaf2ef809fe3c
|
||||
-LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz/md5/0f7f2214d453f562107fe22af5004e8a
|
||||
-LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz/sha512/bd510f25dc26c05362ff204adcc356521bfdacd665411a99e07071ea0c4638274a2e78f009644cdf5e472a1d81c80e353f4673071d90411e6122b55160140f3e
|
||||
+LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz/md5/7b52de6ff70e16aa78cd699fee3e997a
|
||||
+LibSSH2.v1.11.0+1.x86_64-linux-gnu.tar.gz/sha512/7c99d33e60862e2d89bbcc4a09ffff3fbfb921ed674e0d3166a255c72a8e0622a9c6be64f0eb2f8c12ddd80da0307b05d761615b876194bd854aa2c62e26f4ad
|
||||
LibSSH2.v1.11.0+1.x86_64-linux-musl.tar.gz/md5/ee98538d67b8b091c4ddcf632e72e7d1
|
||||
LibSSH2.v1.11.0+1.x86_64-linux-musl.tar.gz/sha512/38cbb59ffa420e4299db848b6ae95098e8e3e6e1334e05369089d17b04fcd0787ad22ba69465611f3e335a1efab228990db776916f40a937b21b18ca511a4484
|
||||
LibSSH2.v1.11.0+1.x86_64-unknown-freebsd.tar.gz/md5/0abe5a971abe63c3db4353e7e9b181e9
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/lld julia-1.10.2/deps/checksums/lld
|
||||
--- julia-1.10.2.orig/deps/checksums/lld 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/lld 2024-05-03 09:40:47.276764183 +0800
|
||||
@@ -8,8 +8,8 @@
|
||||
LLD.v15.0.7+10.aarch64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/e577f2ec2f1a15115d850a850bc0679c80e2dcff6a9f3982ac84cea6497c71d7bc269ff1fd262d427d3a98bff9f72eb4a127ea841471af96078f7e43bea6c5c5
|
||||
LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/a461bae1e190f5f7f72a64336db88df8
|
||||
LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/312f465093817c39f8b17cd004108166241322bd6559545f64bcc5b0c3247f7f7b85e618587a37e51cbeb8decaaebdc69d60f34bf8ddc53e5efebc4d9192ca9b
|
||||
-LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/017a1ffae7b74dc5ae069c00b4ee16e9
|
||||
-LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/62cc6fced8358ac46562887fa03c4196d77b61031b4f80ce3ad339bc6b8ff1f6079b99a862bfbf899d11201b744bc495f7b44315672e72886ae6046c6130d488
|
||||
+LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+LLD.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
LLD.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/417d35e8169ef5ab07ba41d2de46d7e4
|
||||
LLD.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/fff169fe51910680110fd3df8d369fe529f69785a151b4274b127223fe9c660f160366044b74c17a63c24abc8f8c659cfec50624e98c99e7d60ab84716f12888
|
||||
LLD.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/a2bedb0bfad8a556040b7e5ca0e2848e
|
||||
@@ -84,8 +84,8 @@
|
||||
LLD.v15.0.7+10.x86_64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/2e12a0d74cfe145a2c12224d9a2fc5be0a0e7f1332d17b89fcd694b0d72c1bfe7dfff030cbee16d02cc7c9df1d350541685fcfe1ebfac38e4fa4d6172216bba6
|
||||
LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/7abf726bc36460e40dc2799b65dcb0b4
|
||||
LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/19b4a38448d503a6dbfd5f972f8bb60df4d54735541559271be242d977519436d83a9558b42984a4128a2b467bc3e22bf5c37725db2e03c8bd3fc4369a526d7d
|
||||
-LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/f1f685b8f111ab299a3979de7f5b3718
|
||||
-LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/657d404e9295170696830f94bedffc7a3b638ce5e515c24b3a60e3da1ee9ef9d00919db6bf324f9fe9692b916394ea1d93a47840358ec1d56a9734fff0c6f9f0
|
||||
+LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+LLD.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
LLD.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/7968b42dd7370573a820c3a4aa9765fa
|
||||
LLD.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/716a6ded0379cdb441b51031919814afab5ead38cd8004491e022b20c2a2aaf6a1481d4b6396e70e30a8f2c4b81f03450ac5c1591e001bfac345d492933c1556
|
||||
LLD.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/8a375261e55943a26956036a3f99b72b
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/llvm julia-1.10.2/deps/checksums/llvm
|
||||
--- julia-1.10.2.orig/deps/checksums/llvm 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/llvm 2024-05-03 11:09:05.180921876 +0800
|
||||
@@ -8,8 +8,8 @@
|
||||
LLVM.v15.0.7+10.aarch64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/592158975df17c5156ca1fc94518af938cdf76920eca4dd02cf15d8c6bf2a8e98588689ef863bbc24d1a538abdb11e15dd53444d9ce54c1d517902d4cdcdea4c
|
||||
LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/c0c9f2db22ca738bb71e11735a469d7b
|
||||
LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/0901683e377aae6ccc649103dcaad238968ef750c569b530c77f775dd6320343cb0337eeb99e5c69fca0de907705630994073025db288d267215624cb5993d77
|
||||
-LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/91933ede30f956f2cbc66aa42760e5c8
|
||||
-LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/b4388126af2c542471cba0a6224aec92c59dc0376a7733a890e020fa267710ef3f77b73d7d1a4013c865d9ae3ddd80814b7c55e451cf930ca37a0bdb20f22a43
|
||||
+LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+LLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
LLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/9bd64f73682db24333e149ffeb909ba9
|
||||
LLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/5d2eaac3976de1a29dcce8dffa0ce49fe839d68ba288f6e06e902f359095fc6a0c40d22533ad49401629c21e0363f82c34d8ac0d8c348b201c5a0738390f97da
|
||||
LLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/4893c85dc5294deb7d13932bd396569b
|
||||
@@ -84,8 +84,8 @@
|
||||
LLVM.v15.0.7+10.x86_64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/91024fd81157e0d496fe5c4fdb9f2812a19eb87ffdba009a819ac0e2c6f60145631509f200286369826db707e03825dc62c8c2af02176d10d266e2230cade81d
|
||||
LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/81f2a02cb792bd664b782d7734029d66
|
||||
LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/ddad49a9fbbe902e7efc4849e4980d98b21be0e8af0be71b6e66ac50da01e73058984784863b2a4f4aa12ae62f8b3806a6298e8de38198547d03ab0ada17d853
|
||||
-LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/bf7683be32c7792e1947e00062d7b8ef
|
||||
-LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/b3ebeeed5c428fd5ed2643ef45511b74ee0bf0b02653b9211f002e7ecc9f8ff5437139ca0b282c7f25a0918b0e25d316e97b2522a69099d7614d3d1cbe243f84
|
||||
+LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+LLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
LLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/371fd22021c2d6a150e7a7500dea52d7
|
||||
LLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/635cc4cfbf7809b679d5fde80b3af72e22dc056778eb7fc66ff80dcb7706809b4819655e922ea3a1b78c913c116444805b05b8fb98ce84c062ea67b12bac417c
|
||||
LLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/a60ed90e12ec86fd71be1e7c00626429
|
||||
@@ -148,8 +148,8 @@
|
||||
libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/3a010828b7a6fb51101cf08a74702d2d3d5d85579a3e23a91dff1b3622ca6fd8f04948cefbbf74d03e3cf7955b566dc439f04ce73ba77efce9d8c8e1cc37d790
|
||||
libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/bb96ff22c46a5587b066e5994c1d806d
|
||||
libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/d643d142777122cc745dfe853070007f70abcb32a9fe5bdaff3ca0eae77f5b774323ccf1c51340ad2f18c72fbbf83bece673dde0c48f94b1ee4204a69bbcdbe4
|
||||
-libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/9a68655b71b38c61b59959ee890199f0
|
||||
-libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/1b9e20d00114819029aad078aa201a1bcabbf5a5b66bf9867019479180a37cc930cd50127657f87474ae045d1ee808298378e3ac2b8079492a8a3ce4663bdd60
|
||||
+libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+libLLVM.v15.0.7+10.aarch64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
libLLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/ad4fb8227d147a16b19442b194a22467
|
||||
libLLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/fb9c1184de6ea663b3c1b20ba5a5f65afa6bd2a0ea70472db8dd15246b7f0cbe7a0d29eb3dda66d969a6a9b48269f34c200431279e2215760f64e74de6f865c7
|
||||
libLLVM.v15.0.7+10.aarch64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/8981bd41cb59d4680fff276a5cea6b17
|
||||
@@ -224,8 +224,8 @@
|
||||
libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx03-llvm_version+15.tar.gz/sha512/c69f17c49286c352557bf2d5d34a6872184558612f435d0cda2b55892d3cbad91862f19cd0dd2129d5e8ccf6172127445b17a5d9b7c8a136abb15175f49b1c78
|
||||
libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/md5/9aabdd2b8c2c448fa346727c89468d93
|
||||
libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.asserts.tar.gz/sha512/25372337eb7b55bcd51407e9ee202d55633786b6742e38ad12677b0939c824bbcb2e10cef0d6f1bff6f4c0ad8b461c30fde862daf4ddc8a4bc4ea3d91436d4e7
|
||||
-libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/58466a504b06dbfb8dc48c15184193c8
|
||||
-libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/d1d76bdaf3e74a1003fef3a623675be7a9ec0c64f7c5a0c88e7da0bd0384791b39e46dc297b3544f634a1820ffd051a3843c2e91d9f53319609d66542ea30e23
|
||||
+libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/md5/e74093b6e760645ca1567aecce27d463
|
||||
+libLLVM.v15.0.7+10.x86_64-linux-gnu-cxx11-llvm_version+15.tar.gz/sha512/9d2b466c0368996bfa825cdc4fb8e00d0cd43521761946b310c8bc6fff461771f4454bf0b7f8be44d723462a9a2c3721504c4250a3fccdf969ffa789ee40d058
|
||||
libLLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/md5/6b6f0d707452691ba0c3504616f2548b
|
||||
libLLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.asserts.tar.gz/sha512/6c4bad2ab972cc89316f246b0af6c1907650d17685c0923ca2f23144aac7ecc4fdbc29308fcb76d1c67ec99b6148cb0e48f49319d62834c8cbe750a68735d604
|
||||
libLLVM.v15.0.7+10.x86_64-linux-musl-cxx03-llvm_version+15.tar.gz/md5/319a680fa35212f8327c5f3cf8348241
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/mbedtls julia-1.10.2/deps/checksums/mbedtls
|
||||
--- julia-1.10.2.orig/deps/checksums/mbedtls 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/mbedtls 2024-04-27 18:15:01.885846486 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
MbedTLS.v2.28.2+1.aarch64-apple-darwin.tar.gz/md5/ef83fb4706100ee678cd8af3f7a5c762
|
||||
MbedTLS.v2.28.2+1.aarch64-apple-darwin.tar.gz/sha512/03dda8cc9afa3d79c3c733e45c77891e75d939dc2bcca5ba8eb7aa3bd01fb52011ea9323df9cf7294fe6dcf87eb86c1b1c4b2f3b8af6116929b3371698559fe4
|
||||
-MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz/md5/ac46c3840d2d0cc7c573f31c2f3d0d61
|
||||
-MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz/sha512/bb458f1dc9b8684a38f603136ee4ba1c51b47f5047c5a5cfe2c552be266e79dfcd8243b216b0831abf24390eeb6f4524bc7e43b2642eb2ad0227399222cd0d8a
|
||||
+MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz/md5/421c47c18ef46095e3ad38ffc0543e11
|
||||
+MbedTLS.v2.28.2+1.aarch64-linux-gnu.tar.gz/sha512/93cdb44f764b200131b8dbefb9363e5fa38760eaf01473a512f93673cc55db3515830e16b813e03b39cb819323ad78cee4cb7f3fa85861ec5e72e0f89541c7fc
|
||||
MbedTLS.v2.28.2+1.aarch64-linux-musl.tar.gz/md5/d74732e0bbcd03666243605e60bb345a
|
||||
MbedTLS.v2.28.2+1.aarch64-linux-musl.tar.gz/sha512/90b0699477b697b94c0ab1ba0607fb3e1cd40d66a80a51cb1e0f3b927de03ba201e7e280d453db672e6265db5b07d0145846e53ddbcb4b550afcabef1716470b
|
||||
MbedTLS.v2.28.2+1.armv6l-linux-gnueabihf.tar.gz/md5/65ce7c51884b50dcb8343a945644b862
|
||||
@@ -22,8 +22,8 @@
|
||||
MbedTLS.v2.28.2+1.powerpc64le-linux-gnu.tar.gz/sha512/2d47567388b8554ce7714f4ded013fcbffbf94726dbc6a1b7287dc17b27d1fa35baba55cf7dac17c555892a5f4c74119afdf552b42b0e8f80f26621adaa4dbca
|
||||
MbedTLS.v2.28.2+1.x86_64-apple-darwin.tar.gz/md5/dfc263208b1a8d4c29b4ec3b6f10e5ce
|
||||
MbedTLS.v2.28.2+1.x86_64-apple-darwin.tar.gz/sha512/3b2941c4b151206a56a9a795f0f30519676ea4bc0c93f66b419b15568edc91bb976954f584116accb7f9bd067580712e61b3c580a249332640e27e6346ca51ff
|
||||
-MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz/md5/94b908036eecbe59372722b41f0b1985
|
||||
-MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz/sha512/c37a4c34eb450bd716c076c4105bd6022892731c470d64a854ac0fca6653dcf5a70b23982050e7d82cdfd67d02902d9efe4c94d2cf5e0d29d497c3c5ac03f8e8
|
||||
+MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz/md5/421c47c18ef46095e3ad38ffc0543e11
|
||||
+MbedTLS.v2.28.2+1.x86_64-linux-gnu.tar.gz/sha512/93cdb44f764b200131b8dbefb9363e5fa38760eaf01473a512f93673cc55db3515830e16b813e03b39cb819323ad78cee4cb7f3fa85861ec5e72e0f89541c7fc
|
||||
MbedTLS.v2.28.2+1.x86_64-linux-musl.tar.gz/md5/217866be499144eeb2e0944b0b60cc09
|
||||
MbedTLS.v2.28.2+1.x86_64-linux-musl.tar.gz/sha512/144180e1968da627c92173277a130283aea711157a04a2655786658234232e397985f63d5407166377fc5f38a7447c19797c51b66a9c4b1773601d9e7e01d0e0
|
||||
MbedTLS.v2.28.2+1.x86_64-unknown-freebsd.tar.gz/md5/5a1ec1b183f30cb7998550e5ce15c62d
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/mpfr julia-1.10.2/deps/checksums/mpfr
|
||||
--- julia-1.10.2.orig/deps/checksums/mpfr 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/mpfr 2024-04-28 20:52:35.508690353 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
MPFR.v4.2.0+1.aarch64-apple-darwin.tar.gz/md5/f9393a636497b19c846343b456b2dd7e
|
||||
MPFR.v4.2.0+1.aarch64-apple-darwin.tar.gz/sha512/a77a0387e84f572ef5558977096e70da8eb7b3674a8198cc6ae35462971f76d684145ffae7c2ddca32e2bd1c8b2ccb33e4447eb8606d5d5cd5958298472b3ea9
|
||||
-MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz/md5/ade253017d195de694780c32f9161dcf
|
||||
-MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz/sha512/1b68de5f8e557b7434c8c1bc016227b58683b56c0977b763422ea85a673bec446fcfee3a4f69e1d4689abb9bb6bf47f2a50fbb56ecac6a9d40096e66bd0f2080
|
||||
+MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz/md5/f8c66d737283fd35f9fe433fb419b05f
|
||||
+MPFR.v4.2.0+1.aarch64-linux-gnu.tar.gz/sha512/cb2a9314b94e34a4ea49ce2619802e9420c982e55258a4bc423f802740632646a3d420e7fcf373b19618385b8b2b412abfa127e8f473053863424cac233893c0
|
||||
MPFR.v4.2.0+1.aarch64-linux-musl.tar.gz/md5/7dbd121c7192ccaf7191de5ab8d91afb
|
||||
MPFR.v4.2.0+1.aarch64-linux-musl.tar.gz/sha512/8614e3cb28491b24a0ec5060b44abaf264b61c91ddd29d70105ff583bd3112cff1b9bd5ed45e39f186265333982d5eeb8bf35fedc3b51b2a009cc7a51046b50b
|
||||
MPFR.v4.2.0+1.armv6l-linux-gnueabihf.tar.gz/md5/adb2b7fdf111c8b19df1516cfb278bb1
|
||||
@@ -22,8 +22,8 @@
|
||||
MPFR.v4.2.0+1.powerpc64le-linux-gnu.tar.gz/sha512/0e73ca926f3e06466d1899f0b3e9ae4abe15102804dce6716ce23154344a571773c40d276f0038a0ae4e626799867ee715428e1d961334a01ad3091745367e8e
|
||||
MPFR.v4.2.0+1.x86_64-apple-darwin.tar.gz/md5/9652148df4e771be39713c4f43d3ff61
|
||||
MPFR.v4.2.0+1.x86_64-apple-darwin.tar.gz/sha512/91a0219fd1880dfa90d196fa403f4e1df0347ced58a4772492196b94476f346d80696885a4f3520424494bc09679cca0c0ccf2f6e9247d60b52ebdf564485e72
|
||||
-MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz/md5/4de39327a792be708119ac7b43957628
|
||||
-MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz/sha512/447b59d5589a8517061627668e8baed4366408cacc9d8e063528b9b795de6d27e4005844578310185f03f568f4948bc4a794624235875fb61b6187264b6f483b
|
||||
+MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz/md5/f8c66d737283fd35f9fe433fb419b05f
|
||||
+MPFR.v4.2.0+1.x86_64-linux-gnu.tar.gz/sha512/cb2a9314b94e34a4ea49ce2619802e9420c982e55258a4bc423f802740632646a3d420e7fcf373b19618385b8b2b412abfa127e8f473053863424cac233893c0
|
||||
MPFR.v4.2.0+1.x86_64-linux-musl.tar.gz/md5/f9b8c3c094b339341b19828cc5e1d47c
|
||||
MPFR.v4.2.0+1.x86_64-linux-musl.tar.gz/sha512/c661e7c5bded3bdf11b2bd5e5ef4ad8e446934d9b82dfe26f0be1b83cea98d7e56e0903bfc1075f91c8d23401cc6b3b722f2d60f46d73cab884e81fe518aba27
|
||||
MPFR.v4.2.0+1.x86_64-unknown-freebsd.tar.gz/md5/e402dceae753abbdd8b11f3c8d96e0dd
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/nghttp2 julia-1.10.2/deps/checksums/nghttp2
|
||||
--- julia-1.10.2.orig/deps/checksums/nghttp2 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/nghttp2 2024-04-28 18:51:06.291930804 +0800
|
||||
@@ -2,8 +2,8 @@
|
||||
nghttp2-1.52.0.tar.bz2/sha512/019ec7a904d1baf8755ffcea0b38acf45ea9c6829d989a530ab35807338ba78d3328b86eebb3106b8372b7a8c51b466974d423e0cd786b6d6d020f0840c160bf
|
||||
nghttp2.v1.52.0+1.aarch64-apple-darwin.tar.gz/md5/e3d9e07029e184cc55b7e0c4d2e27c7f
|
||||
nghttp2.v1.52.0+1.aarch64-apple-darwin.tar.gz/sha512/cd098db984f751b00d2cc99d7f7eba0fa830ba178dd85a9dfa679a591e62d57364dcfd74e6a55ef513a0436a8e520b1a5474d4bfa9a8bdcd70e398482b7c9985
|
||||
-nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz/md5/73fe75f3cfa2bd3e804ea39a4eb884a9
|
||||
-nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz/sha512/71f4b2a23ba148b66432797b0db954dbd98fc900045d4572f488b43779aae125f71929e5bba6bbadd30c7998a133c5e5beb70888968bf3b01bb5fe9c9ea0e451
|
||||
+nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz/md5/bde5874bd8e7e8be3512a621de27b9d5
|
||||
+nghttp2.v1.52.0+1.aarch64-linux-gnu.tar.gz/sha512/019ec7a904d1baf8755ffcea0b38acf45ea9c6829d989a530ab35807338ba78d3328b86eebb3106b8372b7a8c51b466974d423e0cd786b6d6d020f0840c160bf
|
||||
nghttp2.v1.52.0+1.aarch64-linux-musl.tar.gz/md5/736a24a7eee567851a965558e31489fb
|
||||
nghttp2.v1.52.0+1.aarch64-linux-musl.tar.gz/sha512/ab36182b04a590b092fae9e3a912a87467e8b01ad40a628a1d2e52910ee513ab327d5d2836df598d5aa8203f60a605d19d0b9636eb35d12a84a1c9d87124604b
|
||||
nghttp2.v1.52.0+1.armv6l-linux-gnueabihf.tar.gz/md5/56fd32e8d77d4c9d9e2355565f4db19b
|
||||
@@ -24,8 +24,8 @@
|
||||
nghttp2.v1.52.0+1.powerpc64le-linux-gnu.tar.gz/sha512/7433502d76646e5761ea2707fa65ea5a412c513c70908a4d9ceb504f08121b1f39bcff984543370c221814785b7064f85dedc777a22df5e30a64a64e510e0978
|
||||
nghttp2.v1.52.0+1.x86_64-apple-darwin.tar.gz/md5/59f0de0affaa17898e837b5074de68fc
|
||||
nghttp2.v1.52.0+1.x86_64-apple-darwin.tar.gz/sha512/e639c813373b17d95220640ec2a568e9731cfc32df826610357ec9ff8e9d7e7abe10291140eaeb9342ae69215798bf3f999db7647c23efb4f815b54f4da9cfe4
|
||||
-nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz/md5/6bc8501392d47b349c7463e984dc5909
|
||||
-nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz/sha512/522cc2a8464ee5770c01b83a6b4ecbbcce322efffbd738f7c907643fe85342e785bbc805028d41c2b7404d6241168d1ab37a9db15018623c265b53905bcf060f
|
||||
+nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz/md5/bde5874bd8e7e8be3512a621de27b9d5
|
||||
+nghttp2.v1.52.0+1.x86_64-linux-gnu.tar.gz/sha512/019ec7a904d1baf8755ffcea0b38acf45ea9c6829d989a530ab35807338ba78d3328b86eebb3106b8372b7a8c51b466974d423e0cd786b6d6d020f0840c160bf
|
||||
nghttp2.v1.52.0+1.x86_64-linux-musl.tar.gz/md5/725a6adc23880b28303017597b974535
|
||||
nghttp2.v1.52.0+1.x86_64-linux-musl.tar.gz/sha512/ede5a34b7f71310e4c3cd99b9b61b2453db5dc8117675de12adb1e68c9283cdf821614f49f4d04bdd3b0f17d51a52972ec1e226d0dbdc5462b1a4a1fcc9f39e7
|
||||
nghttp2.v1.52.0+1.x86_64-unknown-freebsd.tar.gz/md5/02e68f367dd5f2ceac3a619da402cbb4
|
||||
diff -ruN julia-1.10.2.orig/deps/checksums/pcre julia-1.10.2/deps/checksums/pcre
|
||||
--- julia-1.10.2.orig/deps/checksums/pcre 2024-04-24 18:01:11.230859118 +0800
|
||||
+++ julia-1.10.2/deps/checksums/pcre 2024-05-03 07:46:05.549508454 +0800
|
||||
@@ -1,7 +1,7 @@
|
||||
PCRE2.v10.42.0+1.aarch64-apple-darwin.tar.gz/md5/667a570d341396c3213749ee1e5b5fda
|
||||
PCRE2.v10.42.0+1.aarch64-apple-darwin.tar.gz/sha512/c1bb99e8928efded9b0ea3f294ceb41daea7254204ca30c0ff88686110ccd58138d8ea8b20b9a9d6d16a6d8d3f34e27e74e7b57d3c8fe6b051c9d8fa6f86431a
|
||||
-PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz/md5/1a758f275ff3306fbad7698df7b9b7be
|
||||
-PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz/sha512/d09508c0b255366d01f1b4d1ae6748a8e47f18c451498d30715f5f968784990949dab7540cd086396abd912f61b5f7c44c8c72a27efaba0a7fc08b71a167c057
|
||||
+PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz/md5/a8e9ab2935d428a4807461f183034abe
|
||||
+PCRE2.v10.42.0+1.aarch64-linux-gnu.tar.gz/sha512/72fbde87fecec3aa4b47225dd919ea1d55e97f2cbcf02aba26e5a0d3b1ffb58c25a80a9ef069eb99f9cf4e41ba9604ad06a7ec159870e1e875d86820e12256d3
|
||||
PCRE2.v10.42.0+1.aarch64-linux-musl.tar.gz/md5/e61147579fdc9b57a61b814bdf9c84bb
|
||||
PCRE2.v10.42.0+1.aarch64-linux-musl.tar.gz/sha512/eecaf4c1937fc04210b910ac65318524c02d690e8c4894c38e74eaba36d26c87a1fd9e1cc36f4307a11ff3552a79f081fa8f05085435eb34872dc2fdecce2d18
|
||||
PCRE2.v10.42.0+1.armv6l-linux-gnueabihf.tar.gz/md5/b4c484a3b87923c0e2e4d9cc5f140eb7
|
||||
@@ -22,8 +22,8 @@
|
||||
PCRE2.v10.42.0+1.powerpc64le-linux-gnu.tar.gz/sha512/69dae12627685ae665db8c91264a79aba7c60ae97eccdc79ef889f2a5f69b465fa333aba298fc90bbb95710cfc324e3630bc427a97577855e8fb6c8fe227cfec
|
||||
PCRE2.v10.42.0+1.x86_64-apple-darwin.tar.gz/md5/c5c52b399921c5ab81a5f598b350d2ca
|
||||
PCRE2.v10.42.0+1.x86_64-apple-darwin.tar.gz/sha512/e6c8ba3aa3fbf54b37079301ab317104c6852812b23835f52ca40f31f0831678172d32e077fbaa712a8a2cb16d62bb97d475827004353e7807922a2d6e049b28
|
||||
-PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz/md5/b074dd1f85e24e723349e566350e2c78
|
||||
-PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz/sha512/236017e02c9f32b913b772dbf22897c8460e5791f196c86f8a073e329ad8925f6859afe48f3bf18ca057c265f08fedbde255360d8f859e2303c6569ab1b0e1bb
|
||||
+PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz/md5/a8e9ab2935d428a4807461f183034abe
|
||||
+PCRE2.v10.42.0+1.x86_64-linux-gnu.tar.gz/sha512/72fbde87fecec3aa4b47225dd919ea1d55e97f2cbcf02aba26e5a0d3b1ffb58c25a80a9ef069eb99f9cf4e41ba9604ad06a7ec159870e1e875d86820e12256d3
|
||||
PCRE2.v10.42.0+1.x86_64-linux-musl.tar.gz/md5/9f32ca77e79843fc9c4b5fc8ed336d11
|
||||
PCRE2.v10.42.0+1.x86_64-linux-musl.tar.gz/sha512/334a31724e9d69c6517568d922717ce76d85cf87dbc863b7262b25ab43c79734b457833cd42674eb6a004864e5c74da3ae1d0a45794b4cd459eea24d9669fac5
|
||||
PCRE2.v10.42.0+1.x86_64-unknown-freebsd.tar.gz/md5/76cde3c509ed39ca67a18fe58e728821
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
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
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun May 12 14:19:36 UTC 2024 - Soc Virnyl Estela <uncomfy+openbuildservice@uncomfyhalomacro.pl>
|
||||
|
||||
|
48
julia.spec
48
julia.spec
@ -62,23 +62,21 @@ Source4: julia-rpmlintrc
|
||||
|
||||
# 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
|
||||
# https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libunwind-1.6.patch?ref_type=heads
|
||||
Patch6: julia-libunwind-1.9.patch
|
||||
# Based of https://gitlab.archlinux.org/archlinux/packaging/packages/julia/-/raw/main/julia-libcholmod-cuda.patch?ref_type=heads
|
||||
Patch10: julia-remove-libcholmod_cuda.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: disable-download-of-unicode-for-doc-gen.patch
|
||||
Patch15: disable-doc-gen-in-makefile.patch
|
||||
Patch16: fix-dependencies-checksums.patch
|
||||
Patch17: mpfr-looking-for-gmp-fix.patch
|
||||
# PATCH-FIX-OPENSUSE -- Despite having no network, build looks for UnicodeData.txt (now Source3). Disabled with this patch.
|
||||
Patch2: disable-download-of-unicode-for-doc-gen.patch
|
||||
# PATCH-FIX-OPENSUSE -- Despite having no network, doc gen still wants to generate. Disabled with this patch.
|
||||
Patch3: disable-doc-gen-in-makefile.patch
|
||||
# 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
|
||||
|
||||
BuildRequires: ImageMagick
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: ca-certificates
|
||||
@ -300,21 +298,7 @@ Obsoletes: %{libname} < %{version}
|
||||
Contains library files for interacting with Julia through C interfaces.
|
||||
|
||||
%prep
|
||||
%setup -q -n julia-%{version}
|
||||
patch -p1 -i %{PATCH1}
|
||||
patch -p1 -i %{PATCH14}
|
||||
patch -p1 -i %{PATCH15}
|
||||
patch -p1 -i %{PATCH6}
|
||||
patch -p1 -i %{PATCH10}
|
||||
patch -p1 -i %{PATCH11}
|
||||
|
||||
# Other hardcoded libs patch
|
||||
patch -p1 -i %{PATCH13}
|
||||
|
||||
# Fix bundled dependencies checksums
|
||||
# Temporarily commented
|
||||
# patch -p1 -i %{PATCH16}
|
||||
patch -p1 -i %{PATCH17}
|
||||
%autosetup -p1
|
||||
|
||||
# Copy https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt to deps/srccache
|
||||
cp %{SOURCE3} deps/srccache/UnicodeData-13.0.0.txt
|
||||
|
@ -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,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:
|
@ -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;
|
Loading…
Reference in New Issue
Block a user