From 9faaaaaaa29355ff43a9b2f346e900f3f69b0db295ca1f713cf6abbca83d2b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 22 Aug 2013 10:59:54 +0000 Subject: [PATCH 01/12] - Fix ARMv6 build OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=265 --- llvm.changes | 5 +++++ llvm.spec | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/llvm.changes b/llvm.changes index b8e6353..1ea80df 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Aug 22 10:59:28 UTC 2013 - idonmez@suse.com + +- Fix ARMv6 build + ------------------------------------------------------------------- Wed Aug 21 11:04:35 UTC 2013 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index 45e782f..d6e327d 100644 --- a/llvm.spec +++ b/llvm.spec @@ -247,6 +247,10 @@ cmake -G "Unix Makefiles" \ -DLLVM_HOST_TRIPLE=%{host_triple} \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ +%ifarch armv6hl + -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" \ -DCMAKE_CXX_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ From 70230e3a00b62aaab1cf1addecb4c87c85f1d6db32341dd0926b943b3296752d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Mon, 26 Aug 2013 09:23:45 +0000 Subject: [PATCH 02/12] Accepting request 196360 from home:Andreas_Schwab:Factory - Define host_triple for aarch64 OBS-URL: https://build.opensuse.org/request/show/196360 OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=266 --- llvm.changes | 5 +++++ llvm.spec | 3 +++ 2 files changed, 8 insertions(+) diff --git a/llvm.changes b/llvm.changes index 1ea80df..2a276b1 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Mon Aug 26 07:23:57 UTC 2013 - schwab@suse.de + +- Define host_triple for aarch64 + ------------------------------------------------------------------- Thu Aug 22 10:59:28 UTC 2013 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index d6e327d..49c3eb3 100644 --- a/llvm.spec +++ b/llvm.spec @@ -212,6 +212,9 @@ pushd stage1 %ifarch armv7hl %define host_triple armv7hl-suse-linux-gnueabi %endif +%ifarch aarch64 +%define host_triple aarch64-suse-linux +%endif %ifarch ppc64 %define host_triple powerpc64-suse-linux sed -i s,'${CMAKE_SYSTEM_PROCESSOR}','"PowerPC"',g ../cmake/modules/AddLLVM.cmake From 31c89f14050612c6ff45897ef78f27e5142e040429e3e25e51f372c09ae94d95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Aug 2013 10:58:33 +0000 Subject: [PATCH 03/12] - Remove unused chrpath dependency - Re-enable ARCMT since libclang depends on it OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=267 --- llvm.changes | 6 ++++++ llvm.spec | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/llvm.changes b/llvm.changes index 2a276b1..f02eceb 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Aug 28 10:57:32 UTC 2013 - idonmez@suse.com + +- Remove unused chrpath dependency +- Re-enable ARCMT since libclang depends on it + ------------------------------------------------------------------- Mon Aug 26 07:23:57 UTC 2013 - schwab@suse.de diff --git a/llvm.spec b/llvm.spec index 49c3eb3..63b275b 100644 --- a/llvm.spec +++ b/llvm.spec @@ -62,7 +62,6 @@ BuildRequires: cmake BuildRequires: binutils-devel >= 2.21.90 %endif BuildRequires: bison -BuildRequires: chrpath BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc @@ -251,8 +250,8 @@ cmake -G "Unix Makefiles" \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ %ifarch armv6hl - -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" \ + -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" \ @@ -274,7 +273,6 @@ cmake -G "Unix Makefiles" \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=%{_experimental_archs} \ %endif -DLLVM_BUILD_TESTS=OFF \ - -DCLANG_ENABLE_ARCMT=OFF \ .. make %{?_smp_mflags} VERBOSE=1 From b8d8c7483e02b14bc608d678515efec2ac55cc04ebd968b3977dbe8c08ca5312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Aug 2013 11:02:17 +0000 Subject: [PATCH 04/12] - Add s390x support OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=268 --- llvm.changes | 5 +++++ llvm.spec | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/llvm.changes b/llvm.changes index f02eceb..1710562 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 28 11:02:06 UTC 2013 - idonmez@suse.com + +- Add s390x support + ------------------------------------------------------------------- Wed Aug 28 10:57:32 UTC 2013 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index 63b275b..4ac1ec5 100644 --- a/llvm.spec +++ b/llvm.spec @@ -29,6 +29,10 @@ %define _supported_archs "PowerPC" %endif +%ifarch s390x +%define _support_archs "SystemZ" +%endif + Name: llvm Version: 3.3 Release: 0 @@ -178,7 +182,7 @@ sed -i s,/lib/,/%{_lib}/,g tools/clang/lib/Driver/Tools.cpp \ %endif # Only enable target archs otherwise llvm-config is messed up -%ifnarch ppc64 arm +%ifnarch arm ppc64 s390x sed -i s,"subdirectories = .*","subdirectories = AArch64 ARM PowerPC R600 X86", lib/Target/LLVMBuild.txt %endif @@ -190,6 +194,10 @@ sed -i s,"subdirectories = .*","subdirectories = ARM", lib/Target/LLVMBuild.txt sed -i s,"subdirectories = .*","subdirectories = PowerPC", lib/Target/LLVMBuild.txt %endif +%ifarch s390x +sed -i s,"subdirectories = .*","subdirectories = PowerPC", lib/Target/LLVMBuild.txt +%endif + sed -i s,"IntelJITEvents OProfileJIT","", lib/ExecutionEngine/LLVMBuild.txt echo > utils/unittest/LLVMBuild.txt @@ -219,6 +227,9 @@ pushd stage1 sed -i s,'${CMAKE_SYSTEM_PROCESSOR}','"PowerPC"',g ../cmake/modules/AddLLVM.cmake rm -rf ../projects/compiler-rt %endif +%ifarch s390x +%define host_triple s390x-suse-linux +%endif cmake -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS=OFF \ @@ -269,7 +280,7 @@ cmake -G "Unix Makefiles" \ -DLLVM_BINUTILS_INCDIR=/usr/include \ %endif -DLLVM_TARGETS_TO_BUILD=%{_supported_archs} \ -%ifnarch arm ppc64 +%ifnarch arm ppc64 s390x -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=%{_experimental_archs} \ %endif -DLLVM_BUILD_TESTS=OFF \ From 83c7621b5d9c41246f1d7eba539d7455c3ac0a5ae30d51f35fc33758f2bd32d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Aug 2013 11:03:41 +0000 Subject: [PATCH 05/12] Fix typo OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=269 --- llvm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 4ac1ec5..5a30580 100644 --- a/llvm.spec +++ b/llvm.spec @@ -30,7 +30,7 @@ %endif %ifarch s390x -%define _support_archs "SystemZ" +%define _supported_archs "SystemZ" %endif Name: llvm From a207a79745a15509e97417c021c375a5f7cb88d8ce0141771c633450515ac9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Aug 2013 11:05:00 +0000 Subject: [PATCH 06/12] Fix typo OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=270 --- llvm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 5a30580..3550659 100644 --- a/llvm.spec +++ b/llvm.spec @@ -195,7 +195,7 @@ sed -i s,"subdirectories = .*","subdirectories = PowerPC", lib/Target/LLVMBuild. %endif %ifarch s390x -sed -i s,"subdirectories = .*","subdirectories = PowerPC", lib/Target/LLVMBuild.txt +sed -i s,"subdirectories = .*","subdirectories = SystemZ", lib/Target/LLVMBuild.txt %endif sed -i s,"IntelJITEvents OProfileJIT","", lib/ExecutionEngine/LLVMBuild.txt From 2244be35efe15db571ff7711e70dfb01285b48eee378620c8ee66a6f34ed72cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 28 Aug 2013 11:07:57 +0000 Subject: [PATCH 07/12] - aarch64-suse-support.patch: Enable AArch64 suse toolchain support OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=271 --- aarch64-suse-support.patch | 16 ++++++++++++++++ llvm.changes | 5 +++++ llvm.spec | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 aarch64-suse-support.patch diff --git a/aarch64-suse-support.patch b/aarch64-suse-support.patch new file mode 100644 index 0000000..ad00825 --- /dev/null +++ b/aarch64-suse-support.patch @@ -0,0 +1,16 @@ +Index: llvm-3.3/tools/clang/lib/Driver/ToolChains.cpp +=================================================================== +--- llvm-3.3.orig/tools/clang/lib/Driver/ToolChains.cpp ++++ llvm-3.3/tools/clang/lib/Driver/ToolChains.cpp +@@ -1073,9 +1073,10 @@ Generic_GCC::GCCInstallationDetector::GC + // Declare a bunch of static data sets that we'll select between below. These + // are specifically designed to always refer to string literals to avoid any + // lifetime or initialization issues. +- static const char *const AArch64LibDirs[] = { "/lib" }; ++ static const char *const AArch64LibDirs[] = { "/lib64", "/lib" }; + static const char *const AArch64Triples[] = { + "aarch64-none-linux-gnu", ++ "aarch64-suse-linux", + "aarch64-linux-gnu" + }; + diff --git a/llvm.changes b/llvm.changes index 1710562..d983d67 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 28 11:07:16 UTC 2013 - schwab@suse.de + +- aarch64-suse-support.patch: Enable AArch64 suse toolchain support + ------------------------------------------------------------------- Wed Aug 28 11:02:06 UTC 2013 - idonmez@suse.com diff --git a/llvm.spec b/llvm.spec index 3550659..92401f7 100644 --- a/llvm.spec +++ b/llvm.spec @@ -56,6 +56,8 @@ Patch6: arm_suse_support.diff # PATCH-FIX-OPENSUSE unreachable-code.patch -- Unreachable code warning triggered on SLE Patch7: unreachable-code.patch Patch8: cmake-host-triple.patch +# PATCH-FIX-OPENSUSE aarch64-suse-support.patch -- Enable AArch64 suse toolchain support +Patch9: aarch64-suse-support.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -163,6 +165,7 @@ This package contains vim plugins for LLVM like syntax highlighting. %patch6 -p1 %patch7 -p1 %patch8 -p1 +%patch9 -p1 # We hardcode i586 rm tools/clang/test/Driver/x86_features.c From a8e4adb37a09cb4eddcc62765bd07c7d9d19a75d9c620ae1c5fdff33f9615ad7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 29 Aug 2013 08:48:15 +0000 Subject: [PATCH 08/12] Accepting request 196739 from home:Andreas_Schwab:Factory - Fix filelist for aarch64 OBS-URL: https://build.opensuse.org/request/show/196739 OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=272 --- llvm.changes | 5 +++++ llvm.spec | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/llvm.changes b/llvm.changes index d983d67..a120e58 100644 --- a/llvm.changes +++ b/llvm.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 28 20:31:11 UTC 2013 - schwab@suse.de + +- Fix filelist for aarch64 + ------------------------------------------------------------------- Wed Aug 28 11:07:16 UTC 2013 - schwab@suse.de diff --git a/llvm.spec b/llvm.spec index 92401f7..4e09501 100644 --- a/llvm.spec +++ b/llvm.spec @@ -449,7 +449,7 @@ rm -rf %{buildroot}/usr/share/llvm/cmake %{_libdir}/bfd-plugins/ %endif %{_libdir}/clang -%ifnarch ppc64 +%ifnarch aarch64 ppc64 %{_libdir}/clang/%{_release_version}/lib/linux/ %endif From d2b9d62c971b5f9dd6e2b4683b2529c62ba1408b5bac7f636a369d3f1d54eddf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 29 Aug 2013 08:55:00 +0000 Subject: [PATCH 09/12] Another s390x fix OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=273 --- llvm.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/llvm.spec b/llvm.spec index 4e09501..733ca3b 100644 --- a/llvm.spec +++ b/llvm.spec @@ -232,6 +232,7 @@ rm -rf ../projects/compiler-rt %endif %ifarch s390x %define host_triple s390x-suse-linux +sed -i s,'${CMAKE_SYSTEM_PROCESSOR}','"SystemZ"',g ../cmake/modules/AddLLVM.cmake %endif cmake -G "Unix Makefiles" \ From e05640c01f182d2fb4ee8af338de2f79f0d187dd53a1df40aac4958897b25d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 29 Aug 2013 14:16:01 +0000 Subject: [PATCH 10/12] One more s390x fix OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=274 --- llvm-no-visibility.patch | 18 ++++++++++++++++++ llvm.spec | 10 ++++++++++ 2 files changed, 28 insertions(+) create mode 100644 llvm-no-visibility.patch diff --git a/llvm-no-visibility.patch b/llvm-no-visibility.patch new file mode 100644 index 0000000..1f3ae01 --- /dev/null +++ b/llvm-no-visibility.patch @@ -0,0 +1,18 @@ +Index: llvm-3.3/cmake/modules/HandleLLVMOptions.cmake +=================================================================== +--- llvm-3.3.orig/cmake/modules/HandleLLVMOptions.cmake ++++ llvm-3.3/cmake/modules/HandleLLVMOptions.cmake +@@ -104,13 +104,6 @@ if( LLVM_ENABLE_PIC ) + # On Windows all code is PIC. MinGW warns if -fPIC is used. + else() + add_flag_or_print_warning("-fPIC") +- +- if( WIN32 OR CYGWIN) +- # MinGW warns if -fvisibility-inlines-hidden is used. +- else() +- check_cxx_compiler_flag("-fvisibility-inlines-hidden" SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG) +- append_if(SUPPORTS_FVISIBILITY_INLINES_HIDDEN_FLAG "-fvisibility-inlines-hidden" CMAKE_CXX_FLAGS) +- endif() + endif() + endif() + diff --git a/llvm.spec b/llvm.spec index 733ca3b..2e38889 100644 --- a/llvm.spec +++ b/llvm.spec @@ -58,6 +58,8 @@ Patch7: unreachable-code.patch Patch8: cmake-host-triple.patch # PATCH-FIX-OPENSUSE aarch64-suse-support.patch -- Enable AArch64 suse toolchain support Patch9: aarch64-suse-support.patch +# PATCH-FIX-OPENSUSE llvm-no-visibility.patch -- Disable visibility +Patch10: llvm-no-visibility.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf BuildRequires: automake @@ -166,6 +168,9 @@ This package contains vim plugins for LLVM like syntax highlighting. %patch7 -p1 %patch8 -p1 %patch9 -p1 +%ifarch s390 s390x +%patch10 -p1 +%endif # We hardcode i586 rm tools/clang/test/Driver/x86_features.c @@ -306,6 +311,11 @@ for i in crash-narrowfunctiontest metadata remove_arguments_test; do rm ../test/BugPoint/$i.ll; done +%ifarch s390 s390x +for i in TestClassDecl.m TestClassForwardDecl.m c-index-getCursor-test.m; do + rm ../tools/clang/test/Index/$i +%endif + make check make clang-test %endif From 75a649611663614f8734ea2dfba97cefcacc959b51bacbe9c1af607de72694f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 29 Aug 2013 14:22:43 +0000 Subject: [PATCH 11/12] - OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=275 --- llvm.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 2e38889..6fd5cf7 100644 --- a/llvm.spec +++ b/llvm.spec @@ -313,7 +313,8 @@ done %ifarch s390 s390x for i in TestClassDecl.m TestClassForwardDecl.m c-index-getCursor-test.m; do - rm ../tools/clang/test/Index/$i + rm ../tools/clang/test/Index/$i; +done %endif make check From eed50e28ce441c243bec2a42c12bdb589cb0178078885e1d99c6786adc55ab63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Thu, 29 Aug 2013 14:31:49 +0000 Subject: [PATCH 12/12] - OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm?expand=0&rev=276 --- llvm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 6fd5cf7..3cfda3f 100644 --- a/llvm.spec +++ b/llvm.spec @@ -461,7 +461,7 @@ rm -rf %{buildroot}/usr/share/llvm/cmake %{_libdir}/bfd-plugins/ %endif %{_libdir}/clang -%ifnarch aarch64 ppc64 +%ifnarch aarch64 ppc64 s390 s390x %{_libdir}/clang/%{_release_version}/lib/linux/ %endif