From 3d34aa032e8b90cc8be808f96fe8c4f0314a2803590488994440d2c498379660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 16 Mar 2016 09:30:12 +0000 Subject: [PATCH 1/4] - Use gcc for stage1 bootstrap - Add llvm-armv6-triple.patch to fix armv6 triple regression. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=435 --- llvm-armv6-triple.patch | 27 +++++++++++++++++++++++++++ llvm.changes | 6 ++++++ llvm.spec | 23 ++++++++--------------- 3 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 llvm-armv6-triple.patch diff --git a/llvm-armv6-triple.patch b/llvm-armv6-triple.patch new file mode 100644 index 0000000..840117a --- /dev/null +++ b/llvm-armv6-triple.patch @@ -0,0 +1,27 @@ +Index: include/llvm/Support/ARMTargetParser.def +=================================================================== +--- include/llvm/Support/ARMTargetParser.def ++++ include/llvm/Support/ARMTargetParser.def +@@ -179,7 +179,8 @@ + ARM_CPU_NAME("arm1136j-s", AK_ARMV6, FK_NONE, false, AEK_NONE) + ARM_CPU_NAME("arm1136jf-s", AK_ARMV6, FK_VFPV2, true, AEK_NONE) + ARM_CPU_NAME("arm1136jz-s", AK_ARMV6, FK_NONE, false, AEK_NONE) +-ARM_CPU_NAME("arm1176j-s", AK_ARMV6K, FK_NONE, true, AEK_NONE) ++ARM_CPU_NAME("arm1176jz-s", AK_ARMV6K, FK_NONE, false, AEK_NONE) ++ARM_CPU_NAME("arm1176jzf-s", AK_ARMV6K, FK_VFPV2, true, AEK_NONE) + ARM_CPU_NAME("arm1176jz-s", AK_ARMV6KZ, FK_NONE, false, AEK_NONE) + ARM_CPU_NAME("mpcore", AK_ARMV6K, FK_VFPV2, false, AEK_NONE) + ARM_CPU_NAME("mpcorenovfp", AK_ARMV6K, FK_NONE, false, AEK_NONE) +Index: unittests/ADT/TripleTest.cpp +=================================================================== +--- unittests/ADT/TripleTest.cpp ++++ unittests/ADT/TripleTest.cpp +@@ -889,7 +889,7 @@ + } + { + llvm::Triple Triple("armv6k-unknown-eabi"); +- EXPECT_EQ("arm1176j-s", Triple.getARMCPUForArch()); ++ EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); + } + { + llvm::Triple Triple("armv6kz-unknown-eabi"); diff --git a/llvm.changes b/llvm.changes index 417c636..333e917 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Mar 16 09:28:51 UTC 2016 - idonmez@suse.com + +- Use gcc for stage1 bootstrap +- Add llvm-armv6-triple.patch to fix armv6 triple regression. + ------------------------------------------------------------------- Thu Mar 10 12:05:39 UTC 2016 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index aa5756b..9a17d54 100644 --- a/llvm.spec +++ b/llvm.spec @@ -70,6 +70,7 @@ Patch7: llvm-fix-find-gcc5-install.patch Patch8: revert-cmake-soname.patch Patch9: lldb-cmake.patch Patch10: glibc-2.23-libcxx.patch +Patch11: llvm-armv6-triple.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: binutils-devel >= 2.21.90 BuildRequires: bison @@ -81,7 +82,6 @@ BuildRequires: groff BuildRequires: libedit-devel BuildRequires: libstdc++-devel BuildRequires: libtool -BuildRequires: llvm-clang BuildRequires: ncurses-devel BuildRequires: ninja BuildRequires: python-base @@ -185,6 +185,7 @@ disassembler. #%if 0%{?suse_version} > 1320 #%patch10 #%endif +%patch11 # Move into right place mv cfe-%{version}.src tools/clang @@ -218,21 +219,13 @@ sed -i s,LLVM_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp sed -i s,LLDB_REVISION,\"%{_revision}\",g tools/lldb/source/lldb.cpp %endif -# ARMv6 needs this exact host triple -%ifarch armv6hl -cat > autoconf/config.guess << EOF -#!/bin/sh -echo armv6hl-suse-linux-gnueabi -EOF -%endif - %build TOPLEVEL=$PWD mkdir stage1 stage2 pushd stage1 -export CC=clang -export CXX=clang++ +export CC=gcc +export CXX=g++ cmake -G "Ninja" \ -DBUILD_SHARED_LIBS=ON \ @@ -241,8 +234,8 @@ cmake -G "Ninja" \ -DLLVM_TARGETS_TO_BUILD=host \ -DLLDB_DISABLE_PYTHON=ON \ %ifarch armv6hl - -DCMAKE_C_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ - -DCMAKE_CXX_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ + -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ + -DCMAKE_CXX_FLAGS="-mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ %endif %ifarch armv7hl -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ @@ -267,8 +260,8 @@ cmake -G "Ninja" \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ %ifarch armv6hl - -DCMAKE_C_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ - -DCMAKE_CXX_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ + -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ + -DCMAKE_CXX_FLAGS="-mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ %endif %ifarch armv7hl -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ From 2aa970a5accfdb4f005abd7a77621b84a112ebb17e3036f481aa8aac0ed5de26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 16 Mar 2016 09:36:02 +0000 Subject: [PATCH 2/4] - OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=436 --- llvm.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/llvm.spec b/llvm.spec index 9a17d54..878da0a 100644 --- a/llvm.spec +++ b/llvm.spec @@ -78,6 +78,7 @@ BuildRequires: cmake BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: groff BuildRequires: libedit-devel BuildRequires: libstdc++-devel From eac6bb1f2f511dff829443ae6485621c959faf2f16f113c21522e8bcb3a5ef60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 16 Mar 2016 12:28:22 +0000 Subject: [PATCH 3/4] - OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=437 --- llvm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 878da0a..debad31 100644 --- a/llvm.spec +++ b/llvm.spec @@ -186,7 +186,7 @@ disassembler. #%if 0%{?suse_version} > 1320 #%patch10 #%endif -%patch11 +#%patch11 # Move into right place mv cfe-%{version}.src tools/clang From e6abd3da9ef722728f2da0245c72f8c1580df3a9340f8631e8bead58d97447e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 16 Mar 2016 13:27:26 +0000 Subject: [PATCH 4/4] - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=438 --- llvm-armv6-triple.patch | 27 --------------------------- llvm.changes | 3 ++- llvm.spec | 4 +--- 3 files changed, 3 insertions(+), 31 deletions(-) delete mode 100644 llvm-armv6-triple.patch diff --git a/llvm-armv6-triple.patch b/llvm-armv6-triple.patch deleted file mode 100644 index 840117a..0000000 --- a/llvm-armv6-triple.patch +++ /dev/null @@ -1,27 +0,0 @@ -Index: include/llvm/Support/ARMTargetParser.def -=================================================================== ---- include/llvm/Support/ARMTargetParser.def -+++ include/llvm/Support/ARMTargetParser.def -@@ -179,7 +179,8 @@ - ARM_CPU_NAME("arm1136j-s", AK_ARMV6, FK_NONE, false, AEK_NONE) - ARM_CPU_NAME("arm1136jf-s", AK_ARMV6, FK_VFPV2, true, AEK_NONE) - ARM_CPU_NAME("arm1136jz-s", AK_ARMV6, FK_NONE, false, AEK_NONE) --ARM_CPU_NAME("arm1176j-s", AK_ARMV6K, FK_NONE, true, AEK_NONE) -+ARM_CPU_NAME("arm1176jz-s", AK_ARMV6K, FK_NONE, false, AEK_NONE) -+ARM_CPU_NAME("arm1176jzf-s", AK_ARMV6K, FK_VFPV2, true, AEK_NONE) - ARM_CPU_NAME("arm1176jz-s", AK_ARMV6KZ, FK_NONE, false, AEK_NONE) - ARM_CPU_NAME("mpcore", AK_ARMV6K, FK_VFPV2, false, AEK_NONE) - ARM_CPU_NAME("mpcorenovfp", AK_ARMV6K, FK_NONE, false, AEK_NONE) -Index: unittests/ADT/TripleTest.cpp -=================================================================== ---- unittests/ADT/TripleTest.cpp -+++ unittests/ADT/TripleTest.cpp -@@ -889,7 +889,7 @@ - } - { - llvm::Triple Triple("armv6k-unknown-eabi"); -- EXPECT_EQ("arm1176j-s", Triple.getARMCPUForArch()); -+ EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { - llvm::Triple Triple("armv6kz-unknown-eabi"); diff --git a/llvm.changes b/llvm.changes index 333e917..71c52d7 100644 --- a/llvm.changes +++ b/llvm.changes @@ -2,7 +2,8 @@ Wed Mar 16 09:28:51 UTC 2016 - idonmez@suse.com - Use gcc for stage1 bootstrap -- Add llvm-armv6-triple.patch to fix armv6 triple regression. +- Add back libstdc++-devel dependency for clang since libc++ is + only available for x86-64 atm. ------------------------------------------------------------------- Thu Mar 10 12:05:39 UTC 2016 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index debad31..9c4dbaf 100644 --- a/llvm.spec +++ b/llvm.spec @@ -70,7 +70,6 @@ Patch7: llvm-fix-find-gcc5-install.patch Patch8: revert-cmake-soname.patch Patch9: lldb-cmake.patch Patch10: glibc-2.23-libcxx.patch -Patch11: llvm-armv6-triple.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: binutils-devel >= 2.21.90 BuildRequires: bison @@ -117,7 +116,7 @@ new native programs that use the LLVM infrastructure. %package clang Summary: CLANG frontend for LLVM Group: Development/Languages/Other -Provides: clang +Requires: libstdc++-devel %description clang This package contains the clang (C language) frontend for LLVM. @@ -186,7 +185,6 @@ disassembler. #%if 0%{?suse_version} > 1320 #%patch10 #%endif -#%patch11 # Move into right place mv cfe-%{version}.src tools/clang