diff options
Diffstat (limited to 'sys-devel/llvm')
-rw-r--r-- | sys-devel/llvm/Manifest | 21 | ||||
-rw-r--r-- | sys-devel/llvm/files/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch | 38 | ||||
-rw-r--r-- | sys-devel/llvm/files/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch | 314 | ||||
-rw-r--r-- | sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch | 110 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-10.0.0.9999.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-7.1.0.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-8.0.1.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-9.0.0.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-9.0.1.9999.ebuild | 2 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-9.0.1_rc2.ebuild (renamed from sys-devel/llvm/llvm-6.0.1.ebuild) | 105 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-9.0.1_rc3.ebuild (renamed from sys-devel/llvm/llvm-6.0.1-r2.ebuild) | 113 |
11 files changed, 127 insertions, 584 deletions
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index 2068164613a2..680177b7b45f 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -1,22 +1,19 @@ -AUX 6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch 1575 BLAKE2B 3a650b244c2b97fa6e76327348a7bb00ace08b18441a59af238ccf0cdea4409e2d0b46c0a381737d7d0879dbc5eb0f71007fee0c9f0f5b92369453223d25397d SHA512 f09bf2b2bbac1f875f32f8761697717fbbfda2939fcccb8b03ecb8e4e65377c875355a3523d54f81c53d11bfaf3557f80000918bea003cfdba0662469283563a -AUX 6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch 13865 BLAKE2B 03f677e386115c3c7333db39664f75b2b4c22e18c2e487e515dc2a55acaa1bf569d2945ae620420b4b4323fb2e4fb7d3c3313dcc7e648942afa25d055d36efc7 SHA512 2820793ef29f08b55b7d94ef700085dce02c6a029c5877a77c5296e9a05dfc9946d10ee66d2d3d8a150cd511e3346d2acf259b873aeed25c1b0aaefebe95790d -AUX 6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch 4263 BLAKE2B f0b073f90968b008ce758a43f00a4268dad1037f949704f3d86741319b6972d1ad69bed0944152f21b837486404948c1f290babc90a4da5ac0c300f0d2a868ee SHA512 efcb4b4bf0320304df680e6b69d8db1e732539e6cde0d9f11566e00533ecf8383d1520edca0a69c96e1722b33dcc8bc33da23470faf59774724cedc9f522d9b1 AUX 7.1.0/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 2626 BLAKE2B 6c3afe6941568119b6bbce1c66be913a29a2ac7853a881804c1c22e981075f1677ca7e4744738ad858f58a58c1a7295aeb5f1d87b3a2b2adfb971a54d76c04fb SHA512 34a84427c34fa8886f55e05cf0ffce258cdee8e98190e070eb40dc555a30784c49ebe4f946f7ea51b7d00fceb8071fc745007250dc5b5a61c4d2bb9910672ec5 AUX 9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 1188 BLAKE2B 72311a8da991b9f3b98523baefe6f5b31aa7f9101c388f35484dd5f384a08e838ea42a17447ca17a0dfe6b7d3c20abbdf0e8afee72e8ad5d46ec38b8d55307c8 SHA512 0ada997db2a0eb875105fb212dc3fc3077b9c4f7804d78c33c4b1f512bf1267295f325153ae14c00404c86e576ae1c78a6aeb0a57d1d4525aabd1169c21806ef AUX 9999/musl-fixes.patch 1258 BLAKE2B fe275412bc908884239ea71de9a9ddf1d2f64debaa1a9ada18170195a7775c41571600ed3666343bf967aff5f9117900f73155f60de5077bc4584cfc2f782f53 SHA512 314dcbe846a66312c9f1634f4ff3f4670b3db1d3210bb550f1d3877a423333ba042da2e90c8736918a36be4d4faf58dab8d3236d4f26df5af7f7f019b0e0ec8f -DIST llvm-6.0.1-manpages.tar.bz2 102656 BLAKE2B 9088ca0bdda69f63354e61b7495df54505d5db2504bc61860a7260343722ec8cdd5e937d0843263a5bf5077b9cf386c337fa127039b996bab10d2ca5c2caeb59 SHA512 c468e97a2d5610aee9e72cb795e4e65375a079d733550f05380230fb44ba0ed67d407ad06e2340b66f13d19c06583b657e8d01fcdca2146ae43964cea309e0b3 -DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 DIST llvm-7.1.0-manpages.tar.bz2 120786 BLAKE2B b52a7afe7c5c170894e910ef2c651a5f38f0bd41147a2c63dc5b8a92f0ec37512e913e68efce51e1643e8f20cf0f3f088d31d19c541d2ff361ecb7d89b234b6c SHA512 78a526d889a8e62accf422655acbb4d17e3c22b0f0830003db0068b3c01c367ac32ce4f4be4cbb2966274440865557c25795205af2a59a054a6f6964294d289f DIST llvm-7.1.0.src.tar.xz 28313784 BLAKE2B b78d9a7fc5ef6e352e77d339e5c4eef5ccedf67c05e7abd949e72619aa8a5ed65e7e5e2008354be8e7916d75581719b99f34227838fcc86c5d0080913c2fb22c SHA512 a7dbd5693d1f2dae6b6e52893a100f9349cbfcfb25c5fdcad46364acbff0dbd3573f8fbc026c68eb9fd56335198aa94b866cc3dd7ea0cbd2cbfb5f8fe3444a7a DIST llvm-8.0.1-manpages.tar.bz2 140915 BLAKE2B 13ac9e172728d643dac1d12ac06909b6db3dd9a1a380a92a07867e3cb835f94b265da5d75c4712b5409405a65795d2cb6b32da4098e38cbb95d7023b56bcbbc1 SHA512 23994a2374659fbbf8d9b5160f4d77e9be7c4c9fc14963e8186bbede78b0ee9257f6b6a9c484bc75d72443d65bb24e598841e64af500336283de0f454d6a2073 DIST llvm-8.0.1.src.tar.xz 30477608 BLAKE2B 4319c837b36111401e3b0f9659b8d875c89463bcc7816df1aefe1e3ff989860bbaa92504718f8e15416cfd9f3491c13777cd5cb661877b237b342b0e515b93f5 SHA512 82e120be5cabdfd5111aebbea68a663fe229c8861d73802d6ab09a3bf48f60de333e07e61f8fb61beaa14ac2bea24fcd74fa6f761acaf62469f536b79fcb1e16 DIST llvm-9.0.0-manpages.tar.bz2 158546 BLAKE2B eed6235698a0b5993affe305f7fd22cd4cf444adf931275a1685f2049a5f17cf2933907577d9ce142348a3c579769b0436aa2b5a9a953958504125a8c3e83b7d SHA512 64c8d18061eb2870b379a1df485be0b61eac07cb10b3f97347b54b2ee326faa63437ca04466776be282e120dd3f6147e14fffdd38ca370db85748fe5eb54d764 DIST llvm-9.0.0.src.tar.xz 32994768 BLAKE2B 7f09bff9bcada95ab9c920c78aef92b57e665d9188bab39c734084ceb03a801c942fed48ea77fabeeb6110c648cb69363c659a6ce93ebf67dbba5c187219b13b SHA512 1bb3341e1d231559b948f1505b33c2e2e03989f9b8bbfef0e0cdaff5ac43f85574c9ec5ac53399b914f497d6899425d861411024e8d7e1d1a338c1c6951ac658 -EBUILD llvm-10.0.0.9999.ebuild 12474 BLAKE2B e3ae359df77b8e55f639a34cd576ab36f694144ba585cedd995884193e3dfe3d969070913e0505f45689a30a3f4211999affbf5cb6677670ee9734d19b915307 SHA512 e4327f352eac05f4af2819086500578b2acf808a7b6cf930350fcaa9e600ac72c209841cef44342fa5b6d4af26e872da5c593297c99695e77b4c00fba00204f9 -EBUILD llvm-6.0.1-r2.ebuild 8211 BLAKE2B 78c9a44c232d0522d52cb1901cda93ef5dcb5df1c8c4aa052122250f9460ca984219c41dfa311a15585637aac6d03e698e15fe6af5ff4273f9265f805e1faf01 SHA512 405bf67ea2457ad0df9f9476d58836685634f5b434cda584c913c1e37f2ba803c2995bf5538515b73bc991a1ff44dd28fa004a459ea86b7af7c2bc23564d0619 -EBUILD llvm-6.0.1.ebuild 7866 BLAKE2B dd6136d06da729413062835ecbc872a8b734ae680369180b19c179067f0cf93bdac82c56bc4954a6cd34c406adaa41376466e496d9fcc1321635de386fd11bc8 SHA512 c0592f651d2db40307bbe2dc499fdf0578b271df30162c5dedcc35ae2022e95efe75d8604a7e12dc2e24e9be937e12bb97004619832f0a2529ea82d78cb42179 -EBUILD llvm-7.1.0.ebuild 7821 BLAKE2B 39820b1dfafde7810aaa2e5851c6293cbe39ef4961a2219ee189d2e8ecbee73771c3f24d356c9506adfdca1ff66904ee394dc3c5ec06b394628a130c4d309b2a SHA512 df4c8f686f6cf0a54a733eb449e9def48bc4baafdea2a5feea2bbec78573ec070a7bf679ace0e27db3cb64babb8d5c9977ee56da67cb7328584d1128c4fe6329 -EBUILD llvm-8.0.1.ebuild 8630 BLAKE2B c0b2d7ea039431c047607492b6f9be8852bd472623e893d624905286b29344a6c5b774671d19a8a18cca9975a4337c218cfc6821cf338000d7985d88a44a6c5a SHA512 23bbfce6f6ed1547b0ca01eaef78f5f7795cd1c5e202e1d625373c36cfb02ee1479c5dd6113f77513e80154644f506581114c7b4544d533e7ed82eb289338415 -EBUILD llvm-9.0.0.ebuild 8633 BLAKE2B 5d3540c704a6e4537a64faeeda171fb691732343551e7e5ade9ff691d65776ea2a09911d2df32a8709ef4ef1f0155b67c40414ae519065a81ce136996a0665f9 SHA512 933c19440fec88a31e299066f558baf0f608f4b4b580547ca42d889166ffd8326afd47cfa0a42c35647f5d20034e620ec648c4e9b1f6cbd83acc513a0157ca08 -EBUILD llvm-9.0.1.9999.ebuild 8100 BLAKE2B 9cd90c255149b10d8610ac922ebcfa56185069e577bc52a63e2c84142431bb60fa3ce3d0777329c9cc9fe2cafa154e3f0d103fd1274a79a4255181435dc47d00 SHA512 736bb5a67f41ffe95cc5c13a01198fa7110deba89d10e7e3b1dc9263f58c6684e3dddd9c5bfaba994701bc88d21720a7147fbb9500dd8bfe3e009ecb4d3f78bc +DIST llvmorg-9.0.1-rc2.tar.gz 113203311 BLAKE2B 6e426060853e1587febedb75189444a1451236b713f800a4f3401c54318e48b0f5e0c484e9e4ef261faceed9b43b445a4153b061d4dadcc617047f9320b4f56a SHA512 fececd9365645920b9afdad1e94d5e10553ad4a39d84b3ac811b86014c395d51f7e4dabe54bb095a99481400c408bee3c9a2044168724d5e094e3258587a5d2c +DIST llvmorg-9.0.1-rc3.tar.gz 113205740 BLAKE2B 3ca81e812833ecc2ac1bacfdeb86f54609ee125ba7390ce6af0113e949496149102360f35a9a0194dff93fb5cb6ade40a68382a03a7e55771a13198abb7ca9de SHA512 ea56a4ee57aacdd00a1d6551cdc768ecce3124a0eb6a9d09fe060bb147019a5119b2a9eaca576474be42e0296293daa923edd86dadb6759df0c2d7fc7a74f9f1 +EBUILD llvm-10.0.0.9999.ebuild 12372 BLAKE2B 144b7dfe17c52bc79163d6f496d1162673fa47471820e32f6c6fd6b9e1438b2df4a6368245550c913601a43beb172aea5f1b01d7ad07594929217be96f369bb7 SHA512 d86c7499a210ba070967e7669ed5ab4a042fb80136fd5e130c627012f7b63811899d2107584b9194e4485eda91b70d46db275574b1a4dbb98c1b5a0504c08493 +EBUILD llvm-7.1.0.ebuild 7719 BLAKE2B 92010c4973fe889c609246842fb3d3563e167026f7c2218a234d0ec50e57c99b9362db53dc5adef4641f12db4c0b295a328fa6994c57c041a03e3a17d6bf8649 SHA512 4c93d414270a03be5a808b73b977d24c1c2189625912aa2fde4121ff02ac8ffcf53c26e0d6c91a50b5015359d86ed6f97d0e7fb4579dc72c279d87cc01e0e610 +EBUILD llvm-8.0.1.ebuild 8528 BLAKE2B cdccf081c4c87ffb50b38b13b279ccb43ac444df3707cce96d2a5b7112a559f0f62fecd894e099fdeae178dd7c76fe97ccd13c3709b3d281184b3f86541fe750 SHA512 8f79795e3d30d099535a5a3142016cffcd9bc95f2cf1e478b480e39c216bcbe598cfbc0d6fbf0e96ce9eee2c030733d12c656b2bb5454cf809e97109353f7544 +EBUILD llvm-9.0.0.ebuild 8531 BLAKE2B d83bc192382fa1cae56e705ae7a75d3a467865f43ab039418371e8efaa86fdca024321d1aa0763eda5a986bfa2b4bb83a93c0d19332f8343233799f5ebcb6dcc SHA512 e0a36e982f17ac29262fdcdc6aa3f6de7e5549ba459c02fcd9322bf8350ee846f859826dc2d87029aaa0ea6bb1adb55637668d9a8263112433194bd969192983 +EBUILD llvm-9.0.1.9999.ebuild 7998 BLAKE2B 7830e405e2f2b06e1bc478c221afef586c2035f8cd8b56d3ac054d9e9982fb9ccea29bc17dece3cca81a09948de6607c310783d4c1b09de9831fc28c34eba673 SHA512 0257108f796345389008b2cde775753f52940ea885be8632cb8f42842fb6b4f15b5bf40d4e0a6151c17d08330d50d514f2545cf1cbf1d514c9dd49bd492582bb +EBUILD llvm-9.0.1_rc2.ebuild 8074 BLAKE2B f5cb179660ca66b622a43f66f4a427eaea97c7dd39fda3dffa941278fe46c237fc45143bee1ae9b144d993e275cb0b92f40bd7d8f71220001434bced1d5d2b31 SHA512 4c89bbe538eba1d3bb15f229e46b4ab05ae4ab11febf01acbf809d3bdd9a39a58b9d6a1ab082380b998ca1adbd2422b81ecba86e6e603e7d5d393cda8c91daa1 +EBUILD llvm-9.0.1_rc3.ebuild 8074 BLAKE2B f5cb179660ca66b622a43f66f4a427eaea97c7dd39fda3dffa941278fe46c237fc45143bee1ae9b144d993e275cb0b92f40bd7d8f71220001434bced1d5d2b31 SHA512 4c89bbe538eba1d3bb15f229e46b4ab05ae4ab11febf01acbf809d3bdd9a39a58b9d6a1ab082380b998ca1adbd2422b81ecba86e6e603e7d5d393cda8c91daa1 MISC metadata.xml 2563 BLAKE2B ca85030788fb213fc891d895238fd75562cdd25cc5fe4271d709cb1c00ef56b0e8b367dc70cc18f7d185d6fbdb57333e219a984220b60141d28fb4784b2cb94a SHA512 8de68ee7f964e6eb2613bd2ff584f834e0f5a3ae8b303b5f2f10fda718a87af9b8ddfc19399950fe4eb8be515930124ced8018190af0f69da7ec5fe8180a68a2 diff --git a/sys-devel/llvm/files/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch b/sys-devel/llvm/files/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch deleted file mode 100644 index 5d1f042164ec..000000000000 --- a/sys-devel/llvm/files/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a7c94b20187a60cf1508ce882ee37b3a056eb0bd Mon Sep 17 00:00:00 2001 -From: Michal Gorny <mgorny@gentoo.org> -Date: Thu, 8 Mar 2018 15:09:38 +0000 -Subject: [PATCH] [cmake] Append -Wl,-rpath-link conditionally to GNULD - -Append -Wl,-rpath-link conditionally to whether GNU ld.bfd is used -rather than the Linux+!gold conditionals. Also move it out of 'else' -branch of *BSD handling. This fixes build failures with ld.bfd -on Gentoo/FreeBSD, and should cause no harm on other systems using -ld.bfd. - -This patch improves the original logic by reusing results of linker -detection introduced in r307852. - -Differential Revision: https://reviews.llvm.org/D43751 - -git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327007 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - cmake/modules/AddLLVM.cmake | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake -index 20166d2cd30..95d47d00e51 100644 ---- a/cmake/modules/AddLLVM.cmake -+++ b/cmake/modules/AddLLVM.cmake -@@ -1589,7 +1589,8 @@ function(llvm_setup_rpath name) - if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)") - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-z,origin ") -- elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT LLVM_LINKER_IS_GOLD) -+ endif() -+ if(LLVM_LINKER_IS_GNULD) - # $ORIGIN is not interpreted at link time by ld.bfd - set_property(TARGET ${name} APPEND_STRING PROPERTY - LINK_FLAGS " -Wl,-rpath-link,${LLVM_LIBRARY_OUTPUT_INTDIR} ") --- -2.16.2 - diff --git a/sys-devel/llvm/files/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch b/sys-devel/llvm/files/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch deleted file mode 100644 index eac5fe44178e..000000000000 --- a/sys-devel/llvm/files/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch +++ /dev/null @@ -1,314 +0,0 @@ -From 9ff352cb602d5dd68bcd7bf2ba4711c8568271a9 Mon Sep 17 00:00:00 2001 -From: George Rimar <grimar@accesssoftek.com> -Date: Tue, 20 Feb 2018 10:17:57 +0000 -Subject: [PATCH] [llvm-mc] - Produce R_X86_64_PLT32 for "call/jmp foo". - -For instructions like call foo and jmp foo patch changes -relocation produced from R_X86_64_PC32 to R_X86_64_PLT32. -Relocation can be used as a marker for 32-bit PC-relative branches. -Linker will reduce PLT32 relocation to PC32 if function is defined locally. - -Differential revision: https://reviews.llvm.org/D43383 - -git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325569 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp | 3 ++ - .../X86/MCTargetDesc/X86ELFObjectWriter.cpp | 3 ++ - lib/Target/X86/MCTargetDesc/X86FixupKinds.h | 1 + - .../X86/MCTargetDesc/X86MCCodeEmitter.cpp | 32 +++++++++++++++++-- - .../X86/MCTargetDesc/X86MachObjectWriter.cpp | 1 + - .../MCTargetDesc/X86WinCOFFObjectWriter.cpp | 1 + - test/CodeGen/X86/cmp.ll | 2 +- - test/CodeGen/X86/fma.ll | 8 ++--- - test/MC/ELF/basic-elf-64.s | 18 ++++++----- - test/MC/ELF/ifunc-reloc.s | 2 +- - test/MC/ELF/weak-diff.s | 2 +- - test/MC/ELF/weak-relocation.s | 2 +- - test/MC/ELF/weakref-reloc.s | 2 +- - 13 files changed, 58 insertions(+), 19 deletions(-) - -diff --git a/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp -index 34db5918926..b301722b535 100644 ---- a/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp -+++ b/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp -@@ -46,6 +46,7 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { - case X86::reloc_signed_4byte: - case X86::reloc_signed_4byte_relax: - case X86::reloc_global_offset_table: -+ case X86::reloc_branch_4byte_pcrel: - case FK_SecRel_4: - case FK_Data_4: - return 2; -@@ -95,6 +96,7 @@ public: - {"reloc_signed_4byte_relax", 0, 32, 0}, - {"reloc_global_offset_table", 0, 32, 0}, - {"reloc_global_offset_table8", 0, 64, 0}, -+ {"reloc_branch_4byte_pcrel", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, - }; - - if (Kind < FirstTargetFixupKind) -@@ -102,6 +104,7 @@ public: - - assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && - "Invalid kind!"); -+ assert(Infos[Kind - FirstTargetFixupKind].Name && "Empty fixup name!"); - return Infos[Kind - FirstTargetFixupKind]; - } - -diff --git a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp -index 4cdbae4d0d9..2ecbb80cd06 100644 ---- a/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp -+++ b/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp -@@ -75,6 +75,9 @@ static X86_64RelType getType64(unsigned Kind, - case X86::reloc_riprel_4byte_relax_rex: - case X86::reloc_riprel_4byte_movq_load: - return RT64_32; -+ case X86::reloc_branch_4byte_pcrel: -+ Modifier = MCSymbolRefExpr::VK_PLT; -+ return RT64_32; - case FK_PCRel_2: - case FK_Data_2: - return RT64_16; -diff --git a/lib/Target/X86/MCTargetDesc/X86FixupKinds.h b/lib/Target/X86/MCTargetDesc/X86FixupKinds.h -index dfdc9ec29ae..3c04b13e002 100644 ---- a/lib/Target/X86/MCTargetDesc/X86FixupKinds.h -+++ b/lib/Target/X86/MCTargetDesc/X86FixupKinds.h -@@ -30,6 +30,7 @@ enum Fixups { - // of the instruction. Used only - // for _GLOBAL_OFFSET_TABLE_. - reloc_global_offset_table8, // 64-bit variant. -+ reloc_branch_4byte_pcrel, // 32-bit PC relative branch. - // Marker - LastTargetFixupKind, - NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind -diff --git a/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp -index 4ddc1f0ba42..608dc4acb04 100644 ---- a/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp -+++ b/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp -@@ -152,6 +152,8 @@ public: - - uint8_t DetermineREXPrefix(const MCInst &MI, uint64_t TSFlags, - int MemOperand, const MCInstrDesc &Desc) const; -+ -+ bool isPCRel32Branch(const MCInst &MI) const; - }; - - } // end anonymous namespace -@@ -276,6 +278,22 @@ static bool HasSecRelSymbolRef(const MCExpr *Expr) { - return false; - } - -+bool X86MCCodeEmitter::isPCRel32Branch(const MCInst &MI) const { -+ unsigned Opcode = MI.getOpcode(); -+ const MCInstrDesc &Desc = MCII.get(Opcode); -+ if ((Opcode != X86::CALL64pcrel32 && Opcode != X86::JMP_4) || -+ getImmFixupKind(Desc.TSFlags) != FK_PCRel_4) -+ return false; -+ -+ unsigned CurOp = X86II::getOperandBias(Desc); -+ const MCOperand &Op = MI.getOperand(CurOp); -+ if (!Op.isExpr()) -+ return false; -+ -+ const MCSymbolRefExpr *Ref = dyn_cast<MCSymbolRefExpr>(Op.getExpr()); -+ return Ref && Ref->getKind() == MCSymbolRefExpr::VK_None; -+} -+ - void X86MCCodeEmitter:: - EmitImmediate(const MCOperand &DispOp, SMLoc Loc, unsigned Size, - MCFixupKind FixupKind, unsigned &CurByte, raw_ostream &OS, -@@ -331,7 +349,8 @@ EmitImmediate(const MCOperand &DispOp, SMLoc Loc, unsigned Size, - FixupKind == MCFixupKind(X86::reloc_riprel_4byte) || - FixupKind == MCFixupKind(X86::reloc_riprel_4byte_movq_load) || - FixupKind == MCFixupKind(X86::reloc_riprel_4byte_relax) || -- FixupKind == MCFixupKind(X86::reloc_riprel_4byte_relax_rex)) -+ FixupKind == MCFixupKind(X86::reloc_riprel_4byte_relax_rex) || -+ FixupKind == MCFixupKind(X86::reloc_branch_4byte_pcrel)) - ImmOffset -= 4; - if (FixupKind == FK_PCRel_2) - ImmOffset -= 2; -@@ -1287,9 +1306,18 @@ encodeInstruction(const MCInst &MI, raw_ostream &OS, - EmitByte(BaseOpcode, CurByte, OS); - break; - } -- case X86II::RawFrm: -+ case X86II::RawFrm: { - EmitByte(BaseOpcode, CurByte, OS); -+ -+ if (!is64BitMode(STI) || !isPCRel32Branch(MI)) -+ break; -+ -+ const MCOperand &Op = MI.getOperand(CurOp++); -+ EmitImmediate(Op, MI.getLoc(), X86II::getSizeOfImm(TSFlags), -+ MCFixupKind(X86::reloc_branch_4byte_pcrel), CurByte, OS, -+ Fixups); - break; -+ } - case X86II::RawFrmMemOffs: - // Emit segment override opcode prefix as needed. - EmitSegmentOverridePrefix(CurByte, 1, MI, OS); -diff --git a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp -index 965f7de809b..22773e64409 100644 ---- a/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp -+++ b/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp -@@ -94,6 +94,7 @@ static unsigned getFixupKindLog2Size(unsigned Kind) { - case X86::reloc_riprel_4byte_movq_load: - case X86::reloc_signed_4byte: - case X86::reloc_signed_4byte_relax: -+ case X86::reloc_branch_4byte_pcrel: - case FK_Data_4: return 2; - case FK_Data_8: return 3; - } -diff --git a/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp b/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp -index 5139bb46b56..291056e3526 100644 ---- a/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp -+++ b/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp -@@ -62,6 +62,7 @@ unsigned X86WinCOFFObjectWriter::getRelocType(MCContext &Ctx, - case X86::reloc_riprel_4byte_movq_load: - case X86::reloc_riprel_4byte_relax: - case X86::reloc_riprel_4byte_relax_rex: -+ case X86::reloc_branch_4byte_pcrel: - return COFF::IMAGE_REL_AMD64_REL32; - case FK_Data_4: - case X86::reloc_signed_4byte: -diff --git a/test/CodeGen/X86/cmp.ll b/test/CodeGen/X86/cmp.ll -index 1ab8421638d..244e651e182 100644 ---- a/test/CodeGen/X86/cmp.ll -+++ b/test/CodeGen/X86/cmp.ll -@@ -240,7 +240,7 @@ define i32 @test12() ssp uwtable { - ; CHECK-NEXT: pushq %rax # encoding: [0x50] - ; CHECK-NEXT: .cfi_def_cfa_offset 16 - ; CHECK-NEXT: callq test12b # encoding: [0xe8,A,A,A,A] --; CHECK-NEXT: # fixup A - offset: 1, value: test12b-4, kind: FK_PCRel_4 -+; CHECK-NEXT: # fixup A - offset: 1, value: test12b-4, kind: reloc_branch_4byte_pcrel - ; CHECK-NEXT: testb %al, %al # encoding: [0x84,0xc0] - ; CHECK-NEXT: je .LBB12_2 # encoding: [0x74,A] - ; CHECK-NEXT: # fixup A - offset: 1, value: .LBB12_2-1, kind: FK_PCRel_1 -diff --git a/test/CodeGen/X86/fma.ll b/test/CodeGen/X86/fma.ll -index 611f707d64c..2c919e3ebc9 100644 ---- a/test/CodeGen/X86/fma.ll -+++ b/test/CodeGen/X86/fma.ll -@@ -137,7 +137,7 @@ define x86_fp80 @test_f80(x86_fp80 %a, x86_fp80 %b, x86_fp80 %c) #0 { - ; FMA64-NEXT: fstpt {{[0-9]+}}(%rsp) ## encoding: [0xdb,0x7c,0x24,0x10] - ; FMA64-NEXT: fstpt (%rsp) ## encoding: [0xdb,0x3c,0x24] - ; FMA64-NEXT: callq _fmal ## encoding: [0xe8,A,A,A,A] --; FMA64-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: FK_PCRel_4 -+; FMA64-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: reloc_branch_4byte_pcrel - ; FMA64-NEXT: addq $56, %rsp ## encoding: [0x48,0x83,0xc4,0x38] - ; FMA64-NEXT: retq ## encoding: [0xc3] - ; -@@ -151,7 +151,7 @@ define x86_fp80 @test_f80(x86_fp80 %a, x86_fp80 %b, x86_fp80 %c) #0 { - ; FMACALL64-NEXT: fstpt {{[0-9]+}}(%rsp) ## encoding: [0xdb,0x7c,0x24,0x10] - ; FMACALL64-NEXT: fstpt (%rsp) ## encoding: [0xdb,0x3c,0x24] - ; FMACALL64-NEXT: callq _fmal ## encoding: [0xe8,A,A,A,A] --; FMACALL64-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: FK_PCRel_4 -+; FMACALL64-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: reloc_branch_4byte_pcrel - ; FMACALL64-NEXT: addq $56, %rsp ## encoding: [0x48,0x83,0xc4,0x38] - ; FMACALL64-NEXT: retq ## encoding: [0xc3] - ; -@@ -165,7 +165,7 @@ define x86_fp80 @test_f80(x86_fp80 %a, x86_fp80 %b, x86_fp80 %c) #0 { - ; AVX512-NEXT: fstpt {{[0-9]+}}(%rsp) ## encoding: [0xdb,0x7c,0x24,0x10] - ; AVX512-NEXT: fstpt (%rsp) ## encoding: [0xdb,0x3c,0x24] - ; AVX512-NEXT: callq _fmal ## encoding: [0xe8,A,A,A,A] --; AVX512-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: FK_PCRel_4 -+; AVX512-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: reloc_branch_4byte_pcrel - ; AVX512-NEXT: addq $56, %rsp ## encoding: [0x48,0x83,0xc4,0x38] - ; AVX512-NEXT: retq ## encoding: [0xc3] - ; -@@ -179,7 +179,7 @@ define x86_fp80 @test_f80(x86_fp80 %a, x86_fp80 %b, x86_fp80 %c) #0 { - ; AVX512VL-NEXT: fstpt {{[0-9]+}}(%rsp) ## encoding: [0xdb,0x7c,0x24,0x10] - ; AVX512VL-NEXT: fstpt (%rsp) ## encoding: [0xdb,0x3c,0x24] - ; AVX512VL-NEXT: callq _fmal ## encoding: [0xe8,A,A,A,A] --; AVX512VL-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: FK_PCRel_4 -+; AVX512VL-NEXT: ## fixup A - offset: 1, value: _fmal-4, kind: reloc_branch_4byte_pcrel - ; AVX512VL-NEXT: addq $56, %rsp ## encoding: [0x48,0x83,0xc4,0x38] - ; AVX512VL-NEXT: retq ## encoding: [0xc3] - entry: -diff --git a/test/MC/ELF/basic-elf-64.s b/test/MC/ELF/basic-elf-64.s -index 01f020bd64b..ae0903ec8cd 100644 ---- a/test/MC/ELF/basic-elf-64.s -+++ b/test/MC/ELF/basic-elf-64.s -@@ -13,6 +13,7 @@ main: # @main - callq puts - xorl %eax, %eax - addq $8, %rsp -+ call foo@GOTPCREL - ret - .Ltmp0: - .size main, .Ltmp0-main -@@ -44,14 +45,15 @@ main: # @main - - // CHECK: Name: .rela.text - --// CHECK: Relocations [ --// CHECK: Section {{.*}} .rela.text { --// CHECK: 0x5 R_X86_64_32 .rodata.str1.1 0x0 --// CHECK: 0xA R_X86_64_PC32 puts 0xFFFFFFFFFFFFFFFC --// CHECK: 0xF R_X86_64_32 .rodata.str1.1 0x6 --// CHECK: 0x14 R_X86_64_PC32 puts 0xFFFFFFFFFFFFFFFC --// CHECK: } --// CHECK: ] -+// CHECK: Relocations [ -+// CHECK: Section {{.*}} .rela.text { -+// CHECK-NEXT: 0x5 R_X86_64_32 .rodata.str1.1 0x0 -+// CHECK-NEXT: 0xA R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0xF R_X86_64_32 .rodata.str1.1 0x6 -+// CHECK-NEXT: 0x14 R_X86_64_PLT32 puts 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0x1F R_X86_64_GOTPCREL foo 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: } -+// CHECK-NEXT: ] - - // CHECK: Symbol { - // CHECK: Binding: Local -diff --git a/test/MC/ELF/ifunc-reloc.s b/test/MC/ELF/ifunc-reloc.s -index 6f1d79b22c4..b4917371b0f 100644 ---- a/test/MC/ELF/ifunc-reloc.s -+++ b/test/MC/ELF/ifunc-reloc.s -@@ -11,6 +11,6 @@ alias: - - // CHECK: Relocations [ - // CHECK-NEXT: Section {{.*}} .rela.text { --// CHECK-NEXT: 0x1 R_X86_64_PC32 sym 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0x1 R_X86_64_PLT32 sym 0xFFFFFFFFFFFFFFFC - // CHECK-NEXT: } - // CHECK-NEXT: ] -diff --git a/test/MC/ELF/weak-diff.s b/test/MC/ELF/weak-diff.s -index ded89b8f833..9785a2befb1 100644 ---- a/test/MC/ELF/weak-diff.s -+++ b/test/MC/ELF/weak-diff.s -@@ -2,7 +2,7 @@ - - // CHECK: Relocations [ - // CHECK-NEXT: Section ({{.*}}) .rela.text { --// CHECK-NEXT: 0x1D R_X86_64_PC32 f2 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0x1D R_X86_64_PLT32 f2 0xFFFFFFFFFFFFFFFC - // CHECK-NEXT: } - // CHECK-NEXT: ] - -diff --git a/test/MC/ELF/weak-relocation.s b/test/MC/ELF/weak-relocation.s -index 19153aa50da..defaf4e6a38 100644 ---- a/test/MC/ELF/weak-relocation.s -+++ b/test/MC/ELF/weak-relocation.s -@@ -9,6 +9,6 @@ bar: - - // CHECK: Relocations [ - // CHECK-NEXT: Section ({{[0-9]+}}) .rela.text { --// CHECK-NEXT: 0x1 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0x1 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC - // CHECK-NEXT: } - // CHECK-NEXT: ] -diff --git a/test/MC/ELF/weakref-reloc.s b/test/MC/ELF/weakref-reloc.s -index baf80060c43..997aea0477a 100644 ---- a/test/MC/ELF/weakref-reloc.s -+++ b/test/MC/ELF/weakref-reloc.s -@@ -9,6 +9,6 @@ - // CHECK: Relocations [ - // CHECK-NEXT: Section ({{[0-9]+}}) {{[^ ]+}} { - // CHECK-NEXT: 0x1 R_X86_64_PLT32 zed 0xFFFFFFFFFFFFFFFC --// CHECK-NEXT: 0x6 R_X86_64_PC32 foo 0xFFFFFFFFFFFFFFFC -+// CHECK-NEXT: 0x6 R_X86_64_PLT32 foo 0xFFFFFFFFFFFFFFFC - // CHECK-NEXT: } - // CHECK-NEXT: ] --- -2.18.0 - diff --git a/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch b/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch deleted file mode 100644 index f38907cdd4c1..000000000000 --- a/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 72da952b396f43d2ce6ca20a0f0d75212fea6b28 Mon Sep 17 00:00:00 2001 -From: Craig Topper <craig.topper@intel.com> -Date: Mon, 1 Oct 2018 07:08:41 +0000 -Subject: [PATCH] [X86] Stop X86DomainReassignment from creating copies between - GR8/GR16 physical registers and k-registers. - -We can only copy between a k-register and a GR32/GR64 register. - -This patch detects that the copy will be illegal and prevents the domain reassignment from happening for that closure. - -This probably isn't the best fix, and we should probably figure out how to handle this correctly. - -Fixes PR38803. - -git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343443 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/Target/X86/X86DomainReassignment.cpp | 21 +++++++++++ - test/CodeGen/X86/pr38803.ll | 48 ++++++++++++++++++++++++ - 2 files changed, 69 insertions(+) - create mode 100644 test/CodeGen/X86/pr38803.ll - -diff --git a/lib/Target/X86/X86DomainReassignment.cpp b/lib/Target/X86/X86DomainReassignment.cpp -index 5196446b39e..62588e9509d 100644 ---- a/lib/Target/X86/X86DomainReassignment.cpp -+++ b/lib/Target/X86/X86DomainReassignment.cpp -@@ -217,6 +217,27 @@ public: - InstrCOPYReplacer(unsigned SrcOpcode, RegDomain DstDomain, unsigned DstOpcode) - : InstrReplacer(SrcOpcode, DstOpcode), DstDomain(DstDomain) {} - -+ bool isLegal(const MachineInstr *MI, -+ const TargetInstrInfo *TII) const override { -+ if (!InstrConverterBase::isLegal(MI, TII)) -+ return false; -+ -+ // Don't allow copies to/flow GR8/GR16 physical registers. -+ // FIXME: Is there some better way to support this? -+ unsigned DstReg = MI->getOperand(0).getReg(); -+ if (TargetRegisterInfo::isPhysicalRegister(DstReg) && -+ (X86::GR8RegClass.contains(DstReg) || -+ X86::GR16RegClass.contains(DstReg))) -+ return false; -+ unsigned SrcReg = MI->getOperand(1).getReg(); -+ if (TargetRegisterInfo::isPhysicalRegister(SrcReg) && -+ (X86::GR8RegClass.contains(SrcReg) || -+ X86::GR16RegClass.contains(SrcReg))) -+ return false; -+ -+ return true; -+ } -+ - double getExtraCost(const MachineInstr *MI, - MachineRegisterInfo *MRI) const override { - assert(MI->getOpcode() == TargetOpcode::COPY && "Expected a COPY"); -diff --git a/test/CodeGen/X86/pr38803.ll b/test/CodeGen/X86/pr38803.ll -new file mode 100644 -index 00000000000..a1ca27d89b0 ---- /dev/null -+++ b/test/CodeGen/X86/pr38803.ll -@@ -0,0 +1,48 @@ -+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -+; RUN: llc < %s -mcpu=skylake-avx512 -mtriple=x86_64-unknown-unknown | FileCheck %s -+ -+@b = local_unnamed_addr global i32 0, align 4 -+@c = local_unnamed_addr global i32 0, align 4 -+@d = local_unnamed_addr global float 0.000000e+00, align 4 -+ -+define float @_Z3fn2v() { -+; CHECK-LABEL: _Z3fn2v: -+; CHECK: # %bb.0: # %entry -+; CHECK-NEXT: pushq %rax -+; CHECK-NEXT: .cfi_def_cfa_offset 16 -+; CHECK-NEXT: callq _Z1av -+; CHECK-NEXT: # kill: def $al killed $al def $eax -+; CHECK-NEXT: kmovd %eax, %k1 -+; CHECK-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero -+; CHECK-NEXT: vmovss %xmm0, %xmm0, %xmm0 {%k1} {z} -+; CHECK-NEXT: cmpl $0, {{.*}}(%rip) -+; CHECK-NEXT: je .LBB0_2 -+; CHECK-NEXT: # %bb.1: # %if.then -+; CHECK-NEXT: vcvtsi2ssl {{.*}}(%rip), %xmm1, %xmm1 -+; CHECK-NEXT: kmovd %eax, %k1 -+; CHECK-NEXT: vxorps %xmm2, %xmm2, %xmm2 -+; CHECK-NEXT: vmovss %xmm2, %xmm0, %xmm1 {%k1} -+; CHECK-NEXT: vmovss %xmm1, {{.*}}(%rip) -+; CHECK-NEXT: .LBB0_2: # %if.end -+; CHECK-NEXT: popq %rax -+; CHECK-NEXT: .cfi_def_cfa_offset 8 -+; CHECK-NEXT: retq -+entry: -+ %call = tail call zeroext i1 @_Z1av() -+ %cond = select i1 %call, float 7.500000e-01, float 0.000000e+00 -+ %0 = load i32, i32* @c, align 4 -+ %tobool2 = icmp eq i32 %0, 0 -+ br i1 %tobool2, label %if.end, label %if.then -+ -+if.then: ; preds = %entry -+ %1 = load i32, i32* @b, align 4 -+ %2 = sitofp i32 %1 to float -+ %conv5 = select i1 %call, float 0.000000e+00, float %2 -+ store float %conv5, float* @d, align 4 -+ br label %if.end -+ -+if.end: ; preds = %entry, %if.then -+ ret float %cond -+} -+ -+declare zeroext i1 @_Z1av() --- -2.19.0 - diff --git a/sys-devel/llvm/llvm-10.0.0.9999.ebuild b/sys-devel/llvm/llvm-10.0.0.9999.ebuild index ac0af7a686a0..c41b6f527c9e 100644 --- a/sys-devel/llvm/llvm-10.0.0.9999.ebuild +++ b/sys-devel/llvm/llvm-10.0.0.9999.ebuild @@ -49,7 +49,6 @@ RDEPEND=" xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) DEPEND="${RDEPEND} gold? ( sys-libs/binutils-libs )" BDEPEND=" @@ -67,7 +66,6 @@ BDEPEND=" dev-python/sphinx[${PYTHON_USEDEP}] ') ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. diff --git a/sys-devel/llvm/llvm-7.1.0.ebuild b/sys-devel/llvm/llvm-7.1.0.ebuild index b6ac1a5fb260..7606df834db5 100644 --- a/sys-devel/llvm/llvm-7.1.0.ebuild +++ b/sys-devel/llvm/llvm-7.1.0.ebuild @@ -51,7 +51,6 @@ RDEPEND=" ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) DEPEND="${RDEPEND} dev-lang/perl || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 @@ -64,7 +63,6 @@ DEPEND="${RDEPEND} doc? ( dev-python/sphinx ) gold? ( sys-libs/binutils-libs ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. diff --git a/sys-devel/llvm/llvm-8.0.1.ebuild b/sys-devel/llvm/llvm-8.0.1.ebuild index 9a04aa34bb2d..888c0a8beb69 100644 --- a/sys-devel/llvm/llvm-8.0.1.ebuild +++ b/sys-devel/llvm/llvm-8.0.1.ebuild @@ -52,7 +52,6 @@ RDEPEND=" ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) DEPEND="${RDEPEND} dev-lang/perl || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 @@ -69,7 +68,6 @@ DEPEND="${RDEPEND} !doc? ( ${PYTHON_DEPS} ) gold? ( sys-libs/binutils-libs ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. diff --git a/sys-devel/llvm/llvm-9.0.0.ebuild b/sys-devel/llvm/llvm-9.0.0.ebuild index a01238a0f752..36fe1ebed13a 100644 --- a/sys-devel/llvm/llvm-9.0.0.ebuild +++ b/sys-devel/llvm/llvm-9.0.0.ebuild @@ -48,7 +48,6 @@ RDEPEND=" xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) DEPEND="${RDEPEND} gold? ( sys-libs/binutils-libs )" BDEPEND=" @@ -65,7 +64,6 @@ BDEPEND=" dev-python/sphinx[${PYTHON_USEDEP}] ') ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. diff --git a/sys-devel/llvm/llvm-9.0.1.9999.ebuild b/sys-devel/llvm/llvm-9.0.1.9999.ebuild index 2f2597f5b16d..9322ed86fcb6 100644 --- a/sys-devel/llvm/llvm-9.0.1.9999.ebuild +++ b/sys-devel/llvm/llvm-9.0.1.9999.ebuild @@ -46,7 +46,6 @@ RDEPEND=" xar? ( app-arch/xar ) xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) DEPEND="${RDEPEND} gold? ( sys-libs/binutils-libs )" BDEPEND=" @@ -63,7 +62,6 @@ BDEPEND=" dev-python/sphinx[${PYTHON_USEDEP}] ') ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. diff --git a/sys-devel/llvm/llvm-6.0.1.ebuild b/sys-devel/llvm/llvm-9.0.1_rc2.ebuild index ddb059014c50..656ecf1927e8 100644 --- a/sys-devel/llvm/llvm-6.0.1.ebuild +++ b/sys-devel/llvm/llvm-9.0.1_rc2.ebuild @@ -1,44 +1,39 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \ - multiprocessing pax-utils python-any-r1 toolchain-funcs +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) +inherit cmake-utils llvm.org multilib-minimal multiprocessing \ + pax-utils python-any-r1 toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" -SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz - !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )" +LLVM_COMPONENTS=( llvm ) +llvm.org_set_globals # Keep in sync with CMakeLists.txt ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) # Additional licenses: # 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. ARM backend: LLVM Software Grant by ARM. +# 2. xxhash: BSD. # 3. MD5 code: public-domain. -# 4. Tests (not installed): -# a. gtest: BSD. -# b. YAML tests: MIT. +# 4. ConvertUTF.h: TODO. -LICENSE="UoI-NCSA rc BSD public-domain - llvm_targets_ARM? ( LLVM-Grant )" +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="debug doc gold libedit +libffi ncurses test xar xml +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 kernel_Darwin ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] + exegesis? ( dev-libs/libpfm:= ) gold? ( || ( >=sys-devel/binutils-2.31.1-r4:*[plugins] @@ -49,9 +44,11 @@ RDEPEND=" libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} + gold? ( sys-libs/binutils-libs )" +BDEPEND=" dev-lang/perl || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) @@ -60,10 +57,11 @@ DEPEND="${RDEPEND} <sys-libs/libcxx-$(ver_cut 1-3).9999 >=sys-devel/binutils-apple-5.1 ) - doc? ( dev-python/sphinx ) - gold? ( sys-libs/binutils-libs ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. @@ -72,20 +70,20 @@ RDEPEND="${RDEPEND} PDEPEND="sys-devel/llvm-common gold? ( >=sys-devel/llvmgold-${SLOT} )" -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" - -S=${WORKDIR}/${P/_/}.src - # least intrusive of all CMAKE_BUILD_TYPE=RelWithDebInfo +python_check_deps() { + use doc || return 0 + + has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + src_prepare() { # Fix llvm-config for shared linking and sane flags # https://bugs.gentoo.org/show_bug.cgi?id=565358 - eapply "${FILESDIR}"/7.1.0/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch - - # Fix appending -Wl,-rpath-link on non-Linux (-> FreeBSD). - eapply "${FILESDIR}"/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch + eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch # disable use of SDK on OSX, bug #568758 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die @@ -94,6 +92,18 @@ src_prepare() { cmake-utils_src_prepare } +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + + [[ ${out} == *HAVE_LIBCXX* ]] +} + multilib_src_configure() { local ffi_cflags ffi_ldflags if use libffi; then @@ -118,8 +128,10 @@ multilib_src_configure() { -DLLVM_ENABLE_TERMINFO=$(usex ncurses) -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DWITH_POLLY=OFF # TODO @@ -134,6 +146,15 @@ multilib_src_configure() { -DOCAMLFIND=NO ) + if is_libcxx_linked; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="libcxx" + ) + fi + # Note: go bindings have no CMake rules at the moment # but let's kill the check in case they are introduced # if ! multilib_is_native_abi || ! use go; then @@ -222,36 +243,28 @@ src_install() { multilib-minimal_src_install # move wrapped headers back - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die } multilib_src_install() { cmake-utils_src_install # move headers to /usr/include for wrapping - rm -rf "${ED%/}"/usr/include || die - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) } multilib_src_install_all() { local revord=$(( 9999 - ${SLOT} )) - cat <<-_EOF_ > "${T}/10llvm-${revord}" || die + newenvd - "10llvm-${revord}" <<-_EOF_ PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" # we need to duplicate it in ROOTPATH for Portage to respect... ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" -_EOF_ - doenvd "${T}/10llvm-${revord}" - - # install pre-generated manpages - if ! use doc; then - # (doman does not support custom paths) - insinto "/usr/lib/llvm/${SLOT}/share/man/man1" - doins "${WORKDIR}/${P}-manpages/llvm"/*.1 - fi + _EOF_ docompress "/usr/lib/llvm/${SLOT}/share/man" } @@ -259,7 +272,7 @@ _EOF_ pkg_postinst() { elog "You can find additional opt-viewer utility scripts in:" elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer" - elog "To use these scripts, you will need Python 2.7 along with the following" + elog "To use these scripts, you will need Python along with the following" elog "packages:" elog " dev-python/pygments (for opt-viewer)" elog " dev-python/pyyaml (for all of them)" diff --git a/sys-devel/llvm/llvm-6.0.1-r2.ebuild b/sys-devel/llvm/llvm-9.0.1_rc3.ebuild index 01164ba7d20b..656ecf1927e8 100644 --- a/sys-devel/llvm/llvm-6.0.1-r2.ebuild +++ b/sys-devel/llvm/llvm-9.0.1_rc3.ebuild @@ -1,44 +1,39 @@ # Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \ - multiprocessing pax-utils python-any-r1 toolchain-funcs +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) +inherit cmake-utils llvm.org multilib-minimal multiprocessing \ + pax-utils python-any-r1 toolchain-funcs DESCRIPTION="Low Level Virtual Machine" HOMEPAGE="https://llvm.org/" -SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz - !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )" +LLVM_COMPONENTS=( llvm ) +llvm.org_set_globals # Keep in sync with CMakeLists.txt ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) + NVPTX PowerPC RISCV Sparc SystemZ WebAssembly X86 XCore ) ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) # Additional licenses: # 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. ARM backend: LLVM Software Grant by ARM. +# 2. xxhash: BSD. # 3. MD5 code: public-domain. -# 4. Tests (not installed): -# a. gtest: BSD. -# b. YAML tests: MIT. +# 4. ConvertUTF.h: TODO. -LICENSE="UoI-NCSA rc BSD public-domain - llvm_targets_ARM? ( LLVM-Grant )" +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA BSD public-domain rc" SLOT="$(ver_cut 1)" -KEYWORDS="amd64 arm arm64 ~ppc64 x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="debug doc gold libedit +libffi ncurses test xar xml +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml z3 kernel_Darwin ${ALL_LLVM_TARGETS[*]}" +REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" RESTRICT="!test? ( test )" RDEPEND=" sys-libs/zlib:0=[${MULTILIB_USEDEP}] + exegesis? ( dev-libs/libpfm:= ) gold? ( || ( >=sys-devel/binutils-2.31.1-r4:*[plugins] @@ -49,9 +44,11 @@ RDEPEND=" libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) + xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] ) + z3? ( >=sci-mathematics/z3-4.7.1:0=[${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} + gold? ( sys-libs/binutils-libs )" +BDEPEND=" dev-lang/perl || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) @@ -60,10 +57,11 @@ DEPEND="${RDEPEND} <sys-libs/libcxx-$(ver_cut 1-3).9999 >=sys-devel/binutils-apple-5.1 ) - doc? ( dev-python/sphinx ) - gold? ( sys-libs/binutils-libs ) + doc? ( $(python_gen_any_dep ' + dev-python/recommonmark[${PYTHON_USEDEP}] + dev-python/sphinx[${PYTHON_USEDEP}] + ') ) libffi? ( virtual/pkgconfig ) - !!<dev-python/configparser-3.3.0.2 ${PYTHON_DEPS}" # There are no file collisions between these versions but having :0 # installed means llvm-config there will take precedence. @@ -72,28 +70,20 @@ RDEPEND="${RDEPEND} PDEPEND="sys-devel/llvm-common gold? ( >=sys-devel/llvmgold-${SLOT} )" -REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )" - -S=${WORKDIR}/${P/_/}.src - # least intrusive of all CMAKE_BUILD_TYPE=RelWithDebInfo +python_check_deps() { + use doc || return 0 + + has_version -b "dev-python/recommonmark[${PYTHON_USEDEP}]" && + has_version -b "dev-python/sphinx[${PYTHON_USEDEP}]" +} + src_prepare() { # Fix llvm-config for shared linking and sane flags # https://bugs.gentoo.org/show_bug.cgi?id=565358 - eapply "${FILESDIR}"/7.1.0/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch - - # Fix appending -Wl,-rpath-link on non-Linux (-> FreeBSD). - eapply "${FILESDIR}"/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch - - # Fix assembly compatibility with binutils-2.31.1 - # https://bugs.gentoo.org/663442 - eapply "${FILESDIR}"/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch - - # Fix x86 codegen bug triggered by Chromium - # https://bugs.gentoo.org/664868 - eapply "${FILESDIR}"/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch + eapply "${FILESDIR}"/9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch # disable use of SDK on OSX, bug #568758 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die @@ -102,6 +92,18 @@ src_prepare() { cmake-utils_src_prepare } +# Is LLVM being linked against libc++? +is_libcxx_linked() { + local code='#include <ciso646> +#if defined(_LIBCPP_VERSION) + HAVE_LIBCXX +#endif +' + local out=$($(tc-getCXX) ${CXXFLAGS} ${CPPFLAGS} -x c++ -E -P - <<<"${code}") || return 1 + + [[ ${out} == *HAVE_LIBCXX* ]] +} + multilib_src_configure() { local ffi_cflags ffi_ldflags if use libffi; then @@ -126,8 +128,10 @@ multilib_src_configure() { -DLLVM_ENABLE_TERMINFO=$(usex ncurses) -DLLVM_ENABLE_LIBXML2=$(usex xml) -DLLVM_ENABLE_ASSERTIONS=$(usex debug) + -DLLVM_ENABLE_LIBPFM=$(usex exegesis) -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_Z3_SOLVER=$(usex z3) -DWITH_POLLY=OFF # TODO @@ -142,6 +146,15 @@ multilib_src_configure() { -DOCAMLFIND=NO ) + if is_libcxx_linked; then + # Smart hack: alter version suffix -> SOVERSION when linking + # against libc++. This way we won't end up mixing LLVM libc++ + # libraries with libstdc++ clang, and the other way around. + mycmakeargs+=( + -DLLVM_VERSION_SUFFIX="libcxx" + ) + fi + # Note: go bindings have no CMake rules at the moment # but let's kill the check in case they are introduced # if ! multilib_is_native_abi || ! use go; then @@ -230,36 +243,28 @@ src_install() { multilib-minimal_src_install # move wrapped headers back - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die + mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${SLOT}/include || die } multilib_src_install() { cmake-utils_src_install # move headers to /usr/include for wrapping - rm -rf "${ED%/}"/usr/include || die - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die + rm -rf "${ED}"/usr/include || die + mv "${ED}"/usr/lib/llvm/${SLOT}/include "${ED}"/usr/include || die LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) } multilib_src_install_all() { local revord=$(( 9999 - ${SLOT} )) - cat <<-_EOF_ > "${T}/10llvm-${revord}" || die + newenvd - "10llvm-${revord}" <<-_EOF_ PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" # we need to duplicate it in ROOTPATH for Portage to respect... ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" -_EOF_ - doenvd "${T}/10llvm-${revord}" - - # install pre-generated manpages - if ! use doc; then - # (doman does not support custom paths) - insinto "/usr/lib/llvm/${SLOT}/share/man/man1" - doins "${WORKDIR}/${P}-manpages/llvm"/*.1 - fi + _EOF_ docompress "/usr/lib/llvm/${SLOT}/share/man" } @@ -267,7 +272,7 @@ _EOF_ pkg_postinst() { elog "You can find additional opt-viewer utility scripts in:" elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer" - elog "To use these scripts, you will need Python 2.7 along with the following" + elog "To use these scripts, you will need Python along with the following" elog "packages:" elog " dev-python/pygments (for opt-viewer)" elog " dev-python/pyyaml (for all of them)" |