diff --git a/.gitignore b/.gitignore index 8121922..5af8eef 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/llvm-20131023.tar.xz +SOURCES/llvm-3.5.0.src.tar.xz diff --git a/.mesa-private-llvm.metadata b/.mesa-private-llvm.metadata index 7e1fb22..5cfad28 100644 --- a/.mesa-private-llvm.metadata +++ b/.mesa-private-llvm.metadata @@ -1 +1 @@ -005cfeec9aaae393f707b0f711727637637fe7bb SOURCES/llvm-20131023.tar.xz +58d817ac2ff573386941e7735d30702fe71267d5 SOURCES/llvm-3.5.0.src.tar.xz diff --git a/SOURCES/llvm-3.5.0-build-fix.patch b/SOURCES/llvm-3.5.0-build-fix.patch new file mode 100644 index 0000000..da1eaec --- /dev/null +++ b/SOURCES/llvm-3.5.0-build-fix.patch @@ -0,0 +1,43 @@ +Error.cpp:28:44: error: declaration of ‘virtual const char* {anonymous}::_object_error_category::name() const’ has a different exception specifier + const char *_object_error_category::name() const { + ^ +Error.cpp:23:15: error: from previous declaration ‘virtual const char* {anonymous}::_object_error_category::name() const noexcept (true)’ + const char* name() const LLVM_NOEXCEPT override; + ^ + +diff -up llvm.src/lib/Object/Error.cpp.jx llvm.src/lib/Object/Error.cpp +--- llvm.src/lib/Object/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/lib/Object/Error.cpp 2014-08-11 13:11:46.135014527 -0400 +@@ -25,7 +25,7 @@ public: + }; + } + +-const char *_object_error_category::name() const { ++const char *_object_error_category::name() const LLVM_NOEXCEPT { + return "llvm.object"; + } + +diff -up llvm.src/tools/llvm-readobj/Error.cpp.jx llvm.src/tools/llvm-readobj/Error.cpp +--- llvm.src/tools/llvm-readobj/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/tools/llvm-readobj/Error.cpp 2014-08-11 13:49:16.624287424 -0400 +@@ -24,7 +24,7 @@ public: + }; + } // namespace + +-const char *_readobj_error_category::name() const { ++const char *_readobj_error_category::name() const LLVM_NOEXCEPT { + return "llvm.readobj"; + } + +diff -up llvm.src/tools/obj2yaml/Error.cpp.jx llvm.src/tools/obj2yaml/Error.cpp +--- llvm.src/tools/obj2yaml/Error.cpp.jx 2014-06-13 11:36:17.000000000 -0400 ++++ llvm.src/tools/obj2yaml/Error.cpp 2014-08-11 14:04:05.841996088 -0400 +@@ -20,7 +20,7 @@ public: + }; + } // namespace + +-const char *_obj2yaml_error_category::name() const { return "obj2yaml"; } ++const char *_obj2yaml_error_category::name() const LLVM_NOEXCEPT { return "obj2yaml"; } + + std::string _obj2yaml_error_category::message(int ev) const { + switch (static_cast(ev)) { diff --git a/SOURCES/llvm-drop-patch-version-number.patch b/SOURCES/llvm-drop-patch-version-number.patch deleted file mode 100644 index 4147aef..0000000 --- a/SOURCES/llvm-drop-patch-version-number.patch +++ /dev/null @@ -1,119 +0,0 @@ -diff -up a/CMakeLists.txt b/CMakeLists.txt ---- a/CMakeLists.txt 2013-10-23 12:54:17.000000000 -0400 -+++ b/CMakeLists.txt 2013-10-23 16:13:12.643785809 -0400 -@@ -12,9 +12,8 @@ set(CMAKE_MODULE_PATH - - set(LLVM_VERSION_MAJOR 3) - set(LLVM_VERSION_MINOR 3) --set(LLVM_VERSION_PATCH 1) - --set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}") -+set(PACKAGE_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}") - - option(LLVM_USE_FOLDERS "Enable solution folders in Visual Studio. Disable for Express versions." ON) - if ( LLVM_USE_FOLDERS ) -@@ -488,7 +487,6 @@ install(DIRECTORY ${CMAKE_CURRENT_BINARY - set(CPACK_PACKAGE_VENDOR "LLVM") - set(CPACK_PACKAGE_VERSION_MAJOR ${LLVM_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_MINOR}) --set(CPACK_PACKAGE_VERSION_MINOR ${LLVM_VERSION_PATCH}) - add_version_info_from_vcs(CPACK_PACKAGE_VERSION_PATCH) - include(CPack) - -diff -up a/configure b/configure ---- a/configure 2013-10-23 16:08:31.497516101 -0400 -+++ b/configure 2013-10-23 16:15:40.940705106 -0400 -@@ -1,6 +1,6 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.60 for LLVM 3.3.1. -+# Generated by GNU Autoconf 2.60 for LLVM 3.3. - # - # Report bugs to . - # -@@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} - # Identity of this package. - PACKAGE_NAME='LLVM' - PACKAGE_TARNAME='llvm' --PACKAGE_VERSION='3.3.1' --PACKAGE_STRING='LLVM 3.3.1' -+PACKAGE_VERSION='3.3' -+PACKAGE_STRING='LLVM 3.3' - PACKAGE_BUGREPORT='http://llvm.org/bugs/' - - ac_unique_file="lib/IR/Module.cpp" -@@ -1331,7 +1331,7 @@ if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF --\`configure' configures LLVM 3.3.1 to adapt to many kinds of systems. -+\`configure' configures LLVM 3.3 to adapt to many kinds of systems. - - Usage: $0 [OPTION]... [VAR=VALUE]... - -@@ -1397,7 +1397,7 @@ fi - - if test -n "$ac_init_help"; then - case $ac_init_help in -- short | recursive ) echo "Configuration of LLVM 3.3.1:";; -+ short | recursive ) echo "Configuration of LLVM 3.3:";; - esac - cat <<\_ACEOF - -@@ -1559,7 +1559,7 @@ fi - test -n "$ac_init_help" && exit $ac_status - if $ac_init_version; then - cat <<\_ACEOF --LLVM configure 3.3.1 -+LLVM configure 3.3 - generated by GNU Autoconf 2.60 - - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -@@ -1575,7 +1575,7 @@ cat >config.log <<_ACEOF - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - --It was created by LLVM $as_me 3.3.1, which was -+It was created by LLVM $as_me 3.3, which was - generated by GNU Autoconf 2.60. Invocation command line was - - $ $0 $@ -@@ -1939,11 +1939,6 @@ cat >>confdefs.h <<\_ACEOF - _ACEOF - - --cat >>confdefs.h <<\_ACEOF --#define LLVM_VERSION_PATCH 1 --_ACEOF -- -- - LLVM_COPYRIGHT="Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign." - - -@@ -10540,7 +10535,7 @@ else - lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 - lt_status=$lt_dlunknown - cat > conftest.$ac_ext <&1 - # report actual input values of CONFIG_FILES etc. instead of their - # values after options handling. - ac_log=" --This file was extended by LLVM $as_me 3.3.1, which was -+This file was extended by LLVM $as_me 3.3, which was - generated by GNU Autoconf 2.60. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES -@@ -23094,7 +23089,7 @@ Report bugs to ." - _ACEOF - cat >>$CONFIG_STATUS <<_ACEOF - ac_cs_version="\\ --LLVM config.status 3.3.1 -+LLVM config.status 3.3 - configured by $0, generated by GNU Autoconf 2.60, - with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - diff --git a/SPECS/llvm.spec b/SPECS/llvm.spec index 17d1d11..5fce613 100644 --- a/SPECS/llvm.spec +++ b/SPECS/llvm.spec @@ -6,21 +6,19 @@ # consequently we build swrast on them instead of llvmpipe. ExcludeArch: ppc s390 %{?rhel6:s390x} -%global svndate 20131023 -#%global prerel rc3 -%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}} +#%global svndate 20131023 +#global prerel rc3 Name: mesa-private-llvm -Version: 3.3 -#Release: 0.4.%{prerel}%{?dist} -Release: 0.8.%{svndate}%{?dist} +Version: 3.5.0 +Release: 1%{?dist} Summary: llvm engine for Mesa Group: System Environment/Libraries License: NCSA URL: http://llvm.org/ -#Source0: %{downloadurl}/llvm-source-%{version}%{?prerel:%{prerel}}.tar.gz -Source0: llvm-%{svndate}.tar.xz +Source0: http://llvm.org/pre-releases/3.5/llvm-3.5.0.src.tar.xz +#Source0: llvm-%{svndate}.tar.xz Source1: make-llvm-snapshot.sh # multilib fixes Source2: llvm-Config-config.h @@ -28,7 +26,7 @@ Source3: llvm-Config-llvm-config.h # Data files should be installed with timestamps preserved Patch0: llvm-2.6-timestamp.patch -Patch1: llvm-drop-patch-version-number.patch +Patch1: llvm-3.5.0-build-fix.patch BuildRequires: bison BuildRequires: chrpath @@ -56,36 +54,46 @@ This package contains library and header files needed to build the LLVM support in Mesa. %prep -#setup -q -n llvm-%{version}%{?prerel}.src -%setup -q -n llvm-%{svndate} -#setup -q -n llvm.src +%setup -q -n llvm-%{version}%{?prerel}.src rm -r -f tools/clang # llvm patches %patch0 -p1 -b .timestamp -%patch1 -p1 -b .version +%patch1 -p1 -b .build # fix ld search path sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' \ ./configure +# mangle the library name +sed -i 's|^LLVM_VERSION_SUFFIX=|&-mesa|' ./configure + +%ifnarch s390x +%define r600 ,r600 +%endif + %build +export CC=gcc +export CXX=g++ %configure \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --includedir=%{_includedir}/mesa-private \ --with-extra-ld-options=-Wl,-Bsymbolic,--default-symver \ - --enable-targets=host \ -%ifnarch s390x - --enable-experimental-targets=R600 \ -%endif + --enable-targets=host%{?r600} \ --enable-bindings=none \ --enable-debug-runtime \ --enable-jit \ --enable-shared \ + --enable-optimized \ + --disable-clang-arcmt \ + --disable-clang-static-analyzer \ + --disable-clang-rewriter \ --disable-assertions \ --disable-docs \ --disable-libffi \ + --disable-terminfo \ + --disable-timestamps \ %ifarch armv7hl armv7l --with-cpu=cortex-a8 \ --with-tune=cortex-a8 \ @@ -94,14 +102,13 @@ sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' \ --with-fpu=vfpv3-d16 \ --with-abi=aapcs-linux \ %endif + %{nil} # FIXME file this # configure does not properly specify libdir or includedir sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}|g' Makefile.config sed -i 's|(PROJ_prefix)/include|&/mesa-private|g' Makefile.config - -# mangle the library name -sed -i 's|^LLVMVersion.*|&-mesa|' Makefile.config +#sed -i 's|LLVM_VERSION_SUFFIX := |& -mesa|g' Makefile.config # FIXME upstream need to fix this # llvm-config.cpp hardcodes lib in it @@ -116,6 +123,9 @@ make install DESTDIR=%{buildroot} # rename the few binaries we're keeping mv %{buildroot}%{_bindir}/llvm-config %{buildroot}%{_bindir}/%{name}-config-%{__isa_bits} +# silly +rm -f %{buildroot}%{_libdir}/llvm-3.5.0.so + pushd %{buildroot}%{_includedir}/mesa-private/llvm/Config mv config.h config-%{__isa_bits}.h cp -p %{SOURCE2} config.h @@ -133,6 +143,8 @@ sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \ rm -f %{buildroot}%{_libdir}/*.a +rm -f %{buildroot}%{_libdir}/libLLVM-%{version}.so + # remove documentation makefiles: # they require the build directory to work find examples -name 'Makefile' | xargs -0r rm -f @@ -147,30 +159,23 @@ rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/{Analysis,Assembly} rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/{DebugInfo,Object,Option} rm -rf %{buildroot}%{_includedir}/mesa-private/llvm/TableGen -%if 0 +# RHEL: Strip out cmake build foo +rm -rf %{buildroot}%{_datadir}/llvm/cmake + %check # the Koji build server does not seem to have enough RAM # for the default 16 threads -# LLVM test suite failing on ARM, PPC64 and s390(x) -make check LIT_ARGS="-v -j4" \ -%ifarch %{arm} ppc64 s390x - | tee llvm-testlog-%{_arch}.txt -%else - %{nil} -%endif -%endif +# just log the results, don't fail the build +make check LIT_ARGS="-v -j4" | tee llvm-testlog-%{_arch}.txt %post -p /sbin/ldconfig %postun -p /sbin/ldconfig -# also unlike fedora, we don't alternatives around llvm-config -# mesa knows to append -%{__isa_bits} - %files %defattr(-,root,root,-) %doc LICENSE.TXT -%{_libdir}/libLLVM-3.3-mesa.so +%{_libdir}/libLLVM-3.5-mesa.so %files devel %defattr(-,root,root,-) @@ -179,6 +184,15 @@ make check LIT_ARGS="-v -j4" \ %{_includedir}/mesa-private/llvm-c %changelog +* Tue Sep 09 2014 Dave Airlie 3.5.0-1 +- llvm 3.5.0 final + +* Wed Aug 27 2014 Adam Jackson 3.5.0-0.1.rc3 +- llvm 3.5.0 RC3 + +* Wed Aug 27 2014 Dave Airlie 3.4.2-1 +- llvm 3.4.2 for RHEL 7.1 + * Tue Jan 28 2014 Adam Jackson 3.3-0.8.20131023 - Disable %%check, only fails in places that don't matter to Mesa (#1028575)