From 36e6bc7ca842c08fddf2e34dc26b2d1ea125d9cd Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Thu, 26 Nov 2009 01:57:30 +0000 Subject: [PATCH 01/39] Fix typo that causes a failure to update the common directory. (releng #2781) --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3946cc6..095153e 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,10 @@ # Makefile for source rpm: llvm -# $Id$ +# $Id: Makefile,v 1.1 2008/01/21 17:30:08 kevin Exp $ NAME := llvm SPECFILE = $(firstword $(wildcard *.spec)) define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done +for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done endef MAKEFILE_COMMON := $(shell $(find-makefile-common)) From f2c3edf5630746e9b778ad5b70e5fb64597c88be Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Sun, 2 May 2010 21:33:15 +0000 Subject: [PATCH 02/39] - Update to final 2.7 release --- .cvsignore | 4 +- llvm-2.5-tclsh_check.patch | 11 -- llvm-2.6-destdir-clang.patch | 99 ---------- llvm-2.6-destdir.patch | 361 ----------------------------------- llvm.spec | 132 +++++++------ sources | 4 +- 6 files changed, 69 insertions(+), 542 deletions(-) delete mode 100644 llvm-2.5-tclsh_check.patch delete mode 100644 llvm-2.6-destdir-clang.patch delete mode 100644 llvm-2.6-destdir.patch diff --git a/.cvsignore b/.cvsignore index 8921202..7fbb55f 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ -llvm-2.6.tar.gz -clang-2.6.tar.gz +clang-2.7.tgz +llvm-2.7.tgz diff --git a/llvm-2.5-tclsh_check.patch b/llvm-2.5-tclsh_check.patch deleted file mode 100644 index 0a3bd13..0000000 --- a/llvm-2.5-tclsh_check.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- llvm-2.5/configure.tclsh_check 2009-02-03 00:29:49.000000000 -0500 -+++ llvm-2.5/configure 2009-09-05 12:25:54.761389908 -0400 -@@ -8032,7 +8032,7 @@ - else - - if test x"${with_tclinclude}" != x ; then -- if test -f ${with_tclinclude}/tclsh ; then -+ if test -f ${with_tclinclude}/tcl.h ; then - ac_cv_path_tclsh=`(cd ${with_tclinclude}; pwd)` - elif test -f ${with_tclinclude}/src/tclsh ; then - ac_cv_path_tclsh=`(cd ${with_tclinclude}/src; pwd)` diff --git a/llvm-2.6-destdir-clang.patch b/llvm-2.6-destdir-clang.patch deleted file mode 100644 index 584afa5..0000000 --- a/llvm-2.6-destdir-clang.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 01c48a60e0a3bcd2e4d6829f2f0186d4ee6ef504 Mon Sep 17 00:00:00 2001 -From: Erick Tryzelaar -Date: Fri, 21 Aug 2009 12:37:18 -0700 -Subject: [PATCH] Use LLVM's new DESTDIR-less PROJ_* variables. -MIME-Version: 1.0 -Content-Type: multipart/mixed; boundary="------------1.6.4" - -This is a multi-part message in MIME format. ---------------1.6.4 -Content-Type: text/plain; charset=UTF-8; format=fixed -Content-Transfer-Encoding: 8bit - ---- - docs/Makefile | 18 +++++++++--------- - docs/tools/Makefile | 6 +++--- - tools/clang-cc/Makefile | 2 +- - 3 files changed, 13 insertions(+), 13 deletions(-) - - ---------------1.6.4 -Content-Type: text/x-patch; name="0001-Use-LLVM-s-new-DESTDIR-less-PROJ_-variables.patch" -Content-Transfer-Encoding: 8bit -Content-Disposition: attachment; filename="0001-Use-LLVM-s-new-DESTDIR-less-PROJ_-variables.patch" - -diff --git docs/Makefile docs/Makefile -index 9b706c7..e9bbb28 100644 ---- docs/Makefile -+++ docs/Makefile -@@ -48,11 +48,11 @@ generated:: doxygen - - install-html: $(PROJ_OBJ_DIR)/html.tar.gz - $(Echo) Installing HTML documentation -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html/img -- $(Verb) $(DataInstall) $(HTML) $(PROJ_docsdir)/html --# $(Verb) $(DataInstall) $(IMAGES) $(PROJ_docsdir)/html/img -- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(PROJ_docsdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/img -+ $(Verb) $(DataInstall) $(HTML) $(DESTDIR)$(PROJ_docsdir)/html -+# $(Verb) $(DataInstall) $(IMAGES) $(DESTDIR)$(PROJ_docsdir)/html/img -+ $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(DESTDIR)$(PROJ_docsdir) - - $(PROJ_OBJ_DIR)/html.tar.gz: $(HTML) - $(Echo) Packaging HTML documentation -@@ -63,11 +63,11 @@ $(PROJ_OBJ_DIR)/html.tar.gz: $(HTML) - - install-doxygen: doxygen - $(Echo) Installing doxygen documentation -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html/doxygen -- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(PROJ_docsdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/doxygen -+ $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(DESTDIR)$(PROJ_docsdir) - $(Verb) cd $(PROJ_OBJ_DIR)/doxygen && \ - $(FIND) . -type f -exec \ -- $(DataInstall) {} $(PROJ_docsdir)/html/doxygen \; -+ $(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/html/doxygen \; - - doxygen: regendoc $(PROJ_OBJ_DIR)/doxygen.tar.gz - -@@ -94,4 +94,4 @@ $(LLVM_SRC_ROOT)/docs/userloc.html: - - uninstall-local:: - $(Echo) Uninstalling Documentation -- $(Verb) $(RM) -rf $(PROJ_docsdir) -+ $(Verb) $(RM) -rf $(DESTDIR)$(PROJ_docsdir) -diff --git docs/tools/Makefile docs/tools/Makefile -index 90eb776..8107754 100644 ---- docs/tools/Makefile -+++ docs/tools/Makefile -@@ -81,9 +81,9 @@ EXTRA_DIST := $(POD) - clean-local:: - $(Verb) $(RM) -f pod2htm*.*~~ $(HTML) $(MAN) $(PS) - --HTML_DIR := $(PROJ_docsdir)/html/clang --MAN_DIR := $(PROJ_mandir)/man1 --PS_DIR := $(PROJ_docsdir)/ps -+HTML_DIR := $(DESTDIR)$(PROJ_docsdir)/html/clang -+MAN_DIR := $(DESTDIR)$(PROJ_mandir)/man1 -+PS_DIR := $(DESTDIR)$(PROJ_docsdir)/ps - - install-html:: $(HTML) - $(Echo) Installing HTML Clang Tools Documentation -diff --git tools/clang-cc/Makefile tools/clang-cc/Makefile -index 874a42f..7c31f37 100644 ---- tools/clang-cc/Makefile -+++ tools/clang-cc/Makefile -@@ -27,6 +27,6 @@ USEDLIBS = clangFrontend.a clangCodeGen.a clangAnalysis.a \ - - # clang-cc lives in a special location; we can get away with this - # because nothing else gets installed from here. --PROJ_bindir := $(DESTDIR)$(PROJ_prefix)/libexec -+PROJ_bindir := $(PROJ_prefix)/libexec - - include $(LLVM_SRC_ROOT)/Makefile.rules - ---------------1.6.4-- - - diff --git a/llvm-2.6-destdir.patch b/llvm-2.6-destdir.patch deleted file mode 100644 index f65204d..0000000 --- a/llvm-2.6-destdir.patch +++ /dev/null @@ -1,361 +0,0 @@ -From 5a380ce5d1c8d5a1474764a7a54a1e2072fddb03 Mon Sep 17 00:00:00 2001 -From: Erick Tryzelaar -Date: Fri, 21 Aug 2009 11:59:01 -0700 -Subject: [PATCH] Rewrite makefiles to explicitly reference DESTDIR so we can not bake DESTDIR - into the O'Caml symlinks. -MIME-Version: 1.0 -Content-Type: multipart/mixed; boundary="------------1.6.4" - -This is a multi-part message in MIME format. ---------------1.6.4 -Content-Type: text/plain; charset=UTF-8; format=fixed -Content-Transfer-Encoding: 8bit - ---- - Makefile.config.in | 16 +++++++------- - Makefile.rules | 46 ++++++++++++++++++++++---------------------- - docs/CommandGuide/Makefile | 6 ++-- - docs/Makefile | 24 +++++++++++----------- - docs/tutorial/Makefile | 2 +- - lib/VMCore/Makefile | 4 +- - tools/gccas/Makefile | 4 +- - tools/gccld/Makefile | 4 +- - tools/llvm-config/Makefile | 4 +- - 9 files changed, 55 insertions(+), 55 deletions(-) - - ---------------1.6.4 -Content-Type: text/x-patch; name="0001-Rewrite-makefiles-to-explicitly-reference-DESTDIR-so.patch" -Content-Transfer-Encoding: 8bit -Content-Disposition: attachment; filename="0001-Rewrite-makefiles-to-explicitly-reference-DESTDIR-so.patch" - -diff --git Makefile.config.in Makefile.config.in -index ecd0595..73656f7 100644 ---- Makefile.config.in -+++ Makefile.config.in -@@ -76,14 +76,14 @@ endif - - LLVMMAKE := $(LLVM_SRC_ROOT)/make - --PROJ_bindir := $(DESTDIR)$(PROJ_prefix)/bin --PROJ_libdir := $(DESTDIR)$(PROJ_prefix)/lib --PROJ_datadir := $(DESTDIR)$(PROJ_prefix)/share --PROJ_docsdir := $(DESTDIR)$(PROJ_prefix)/docs/llvm --PROJ_etcdir := $(DESTDIR)$(PROJ_prefix)/etc/llvm --PROJ_includedir := $(DESTDIR)$(PROJ_prefix)/include --PROJ_infodir := $(DESTDIR)$(PROJ_prefix)/info --PROJ_mandir := $(DESTDIR)$(PROJ_prefix)/share/man -+PROJ_bindir := $(PROJ_prefix)/bin -+PROJ_libdir := $(PROJ_prefix)/lib -+PROJ_datadir := $(PROJ_prefix)/share -+PROJ_docsdir := $(PROJ_prefix)/docs/llvm -+PROJ_etcdir := $(PROJ_prefix)/etc/llvm -+PROJ_includedir := $(PROJ_prefix)/include -+PROJ_infodir := $(PROJ_prefix)/info -+PROJ_mandir := $(PROJ_prefix)/share/man - - # Determine if we're on a unix type operating system - LLVM_ON_UNIX:=@LLVM_ON_UNIX@ -diff --git Makefile.rules Makefile.rules -index 5556684..08965f3 100644 ---- Makefile.rules -+++ Makefile.rules -@@ -720,7 +720,7 @@ ObjectsBC := $(BaseNameSources:%=$(ObjDir)/%.bc) - # in the file so they get built before dependencies - #--------------------------------------------------------- - --$(PROJ_bindir) $(PROJ_libdir) $(PROJ_includedir) $(PROJ_etcdir):: -+$(DESTDIR)$(PROJ_bindir) $(DESTDIR)$(PROJ_libdir) $(DESTDIR)$(PROJ_includedir) $(DESTDIR)$(PROJ_etcdir):: - $(Verb) $(MKDIR) $@ - - # To create other directories, as needed, and timestamp their creation -@@ -842,22 +842,22 @@ install-local:: - uninstall-local:: - $(Echo) UnInstall circumvented with NO_INSTALL - else --install-local:: $(PROJ_etcdir) $(CONFIG_FILES) -- $(Echo) Installing Configuration Files To $(PROJ_etcdir) -+install-local:: $(DESTDIR)$(PROJ_etcdir) $(CONFIG_FILES) -+ $(Echo) Installing Configuration Files To $(DESTDIR)$(PROJ_etcdir) - $(Verb)for file in $(CONFIG_FILES); do \ - if test -f $(PROJ_OBJ_DIR)/$${file} ; then \ -- $(DataInstall) $(PROJ_OBJ_DIR)/$${file} $(PROJ_etcdir) ; \ -+ $(DataInstall) $(PROJ_OBJ_DIR)/$${file} $(DESTDIR)$(PROJ_etcdir) ; \ - elif test -f $(PROJ_SRC_DIR)/$${file} ; then \ -- $(DataInstall) $(PROJ_SRC_DIR)/$${file} $(PROJ_etcdir) ; \ -+ $(DataInstall) $(PROJ_SRC_DIR)/$${file} $(DESTDIR)$(PROJ_etcdir) ; \ - else \ - $(ECHO) Error: cannot find config file $${file}. ; \ - fi \ - done - - uninstall-local:: -- $(Echo) Uninstalling Configuration Files From $(PROJ_etcdir) -+ $(Echo) Uninstalling Configuration Files From $(DESTDIR)$(PROJ_etcdir) - $(Verb)for file in $(CONFIG_FILES); do \ -- $(RM) -f $(PROJ_etcdir)/$${file} ; \ -+ $(RM) -f $(DESTDIR)$(PROJ_etcdir)/$${file} ; \ - done - endif - -@@ -944,7 +944,7 @@ endif - ifdef BYTECODE_DESTINATION - ModuleDestDir := $(BYTECODE_DESTINATION) - else --ModuleDestDir := $(PROJ_libdir) -+ModuleDestDir := $(DESTDIR)$(PROJ_libdir) - endif - - ifdef NO_INSTALL -@@ -1023,17 +1023,17 @@ install-local:: - uninstall-local:: - $(Echo) Uninstall circumvented with NO_INSTALL - else --DestSharedLib = $(PROJ_libdir)/lib$(LIBRARYNAME)$(SHLIBEXT) -+DestSharedLib = $(DESTDIR)$(PROJ_libdir)/lib$(LIBRARYNAME)$(SHLIBEXT) - - install-local:: $(DestSharedLib) - --$(DestSharedLib): $(LibName.SO) $(PROJ_libdir) -+$(DestSharedLib): $(LibName.SO) $(DESTDIR)$(PROJ_libdir) - $(Echo) Installing $(BuildMode) Shared Library $(DestSharedLib) - $(Verb) $(INSTALL) $(LibName.SO) $(DestSharedLib) - - uninstall-local:: - $(Echo) Uninstalling $(BuildMode) Shared Library $(DestSharedLib) -- -$(Verb) $(RM) -f $(PROJ_libdir)/lib$(LIBRARYNAME).* -+ -$(Verb) $(RM) -f $(DESTDIR)$(PROJ_libdir)/lib$(LIBRARYNAME).* - endif - endif - -@@ -1078,7 +1078,7 @@ endif - ifdef BYTECODE_DESTINATION - BytecodeDestDir := $(BYTECODE_DESTINATION) - else --BytecodeDestDir := $(PROJ_libdir) -+BytecodeDestDir := $(DESTDIR)$(PROJ_libdir) - endif - - DestBytecodeLib = $(BytecodeDestDir)/lib$(LIBRARYNAME).bca -@@ -1141,13 +1141,13 @@ install-local:: - uninstall-local:: - $(Echo) Uninstall circumvented with NO_INSTALL - else --DestArchiveLib := $(PROJ_libdir)/lib$(LIBRARYNAME).a -+DestArchiveLib := $(DESTDIR)$(PROJ_libdir)/lib$(LIBRARYNAME).a - - install-local:: $(DestArchiveLib) - --$(DestArchiveLib): $(LibName.A) $(PROJ_libdir) -+$(DestArchiveLib): $(LibName.A) $(DESTDIR)$(PROJ_libdir) - $(Echo) Installing $(BuildMode) Archive Library $(DestArchiveLib) -- $(Verb) $(MKDIR) $(PROJ_libdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_libdir) - $(Verb) $(INSTALL) $(LibName.A) $(DestArchiveLib) - - uninstall-local:: -@@ -1225,11 +1225,11 @@ install-local:: - uninstall-local:: - $(Echo) Uninstall circumvented with NO_INSTALL - else --DestTool = $(PROJ_bindir)/$(TOOLNAME)$(EXEEXT) -+DestTool = $(DESTDIR)$(PROJ_bindir)/$(TOOLNAME)$(EXEEXT) - - install-local:: $(DestTool) - --$(DestTool): $(ToolBuildPath) $(PROJ_bindir) -+$(DestTool): $(ToolBuildPath) $(DESTDIR)$(PROJ_bindir) - $(Echo) Installing $(BuildMode) $(DestTool) - $(Verb) $(ProgInstall) $(ToolBuildPath) $(DestTool) - -@@ -1824,25 +1824,25 @@ uninstall-local:: - else - install-local:: - $(Echo) Installing include files -- $(Verb) $(MKDIR) $(PROJ_includedir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_includedir) - $(Verb) if test -d "$(PROJ_SRC_ROOT)/include" ; then \ - cd $(PROJ_SRC_ROOT)/include && \ - for hdr in `find . -type f '!' '(' -name '*~' \ - -o -name '.#*' -o -name '*.in' ')' -print | grep -v CVS | \ - grep -v .svn` ; do \ -- instdir=`dirname "$(PROJ_includedir)/$$hdr"` ; \ -+ instdir=`dirname "$(DESTDIR)$(PROJ_includedir)/$$hdr"` ; \ - if test \! -d "$$instdir" ; then \ - $(EchoCmd) Making install directory $$instdir ; \ - $(MKDIR) $$instdir ;\ - fi ; \ -- $(DataInstall) $$hdr $(PROJ_includedir)/$$hdr ; \ -+ $(DataInstall) $$hdr $(DESTDIR)$(PROJ_includedir)/$$hdr ; \ - done ; \ - fi - ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT)) - $(Verb) if test -d "$(PROJ_OBJ_ROOT)/include" ; then \ - cd $(PROJ_OBJ_ROOT)/include && \ - for hdr in `find . -type f -print | grep -v CVS` ; do \ -- $(DataInstall) $$hdr $(PROJ_includedir)/$$hdr ; \ -+ $(DataInstall) $$hdr $(DESTDIR)$(PROJ_includedir)/$$hdr ; \ - done ; \ - fi - endif -@@ -1854,10 +1854,10 @@ uninstall-local:: - $(RM) -f `find . -path '*/Internal' -prune -o '(' -type f \ - '!' '(' -name '*~' -o -name '.#*' \ - -o -name '*.in' ')' -print ')' | \ -- grep -v CVS | sed 's#^#$(PROJ_includedir)/#'` ; \ -+ grep -v CVS | sed 's#^#$(DESTDIR)$(PROJ_includedir)/#'` ; \ - cd $(PROJ_SRC_ROOT)/include && \ - $(RM) -f `find . -path '*/Internal' -prune -o '(' -type f -name '*.in' \ -- -print ')' | sed 's#\.in$$##;s#^#$(PROJ_includedir)/#'` ; \ -+ -print ')' | sed 's#\.in$$##;s#^#$(DESTDIR)$(PROJ_includedir)/#'` ; \ - fi - endif - endif -diff --git docs/CommandGuide/Makefile docs/CommandGuide/Makefile -index cf77e6a..28835ac 100644 ---- docs/CommandGuide/Makefile -+++ docs/CommandGuide/Makefile -@@ -71,9 +71,9 @@ EXTRA_DIST := $(POD) index.html - clean-local:: - $(Verb) $(RM) -f pod2htm*.*~~ $(HTML) $(MAN) $(PS) - --HTML_DIR := $(PROJ_docsdir)/html/CommandGuide --MAN_DIR := $(PROJ_mandir)/man1 --PS_DIR := $(PROJ_docsdir)/ps -+HTML_DIR := $(DESTDIR)$(PROJ_docsdir)/html/CommandGuide -+MAN_DIR := $(DESTDIR)$(PROJ_mandir)/man1 -+PS_DIR := $(DESTDIR)$(PROJ_docsdir)/ps - - install-local:: $(HTML) $(MAN) $(PS) - $(Echo) Installing HTML CommandGuide Documentation -diff --git docs/Makefile docs/Makefile -index 310c4bd..30cd8a7 100644 ---- docs/Makefile -+++ docs/Makefile -@@ -48,11 +48,11 @@ generated:: doxygen ocamldoc - - install-html: $(PROJ_OBJ_DIR)/html.tar.gz - $(Echo) Installing HTML documentation -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html/img -- $(Verb) $(DataInstall) $(HTML) $(PROJ_docsdir)/html -- $(Verb) $(DataInstall) $(IMAGES) $(PROJ_docsdir)/html/img -- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(PROJ_docsdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/img -+ $(Verb) $(DataInstall) $(HTML) $(DESTDIR)$(PROJ_docsdir)/html -+ $(Verb) $(DataInstall) $(IMAGES) $(DESTDIR)$(PROJ_docsdir)/html/img -+ $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/html.tar.gz $(DESTDIR)$(PROJ_docsdir) - - $(PROJ_OBJ_DIR)/html.tar.gz: $(HTML) - $(Echo) Packaging HTML documentation -@@ -63,11 +63,11 @@ $(PROJ_OBJ_DIR)/html.tar.gz: $(HTML) - - install-doxygen: doxygen - $(Echo) Installing doxygen documentation -- $(Verb) $(MKDIR) $(PROJ_docsdir)/html/doxygen -- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(PROJ_docsdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/html/doxygen -+ $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/doxygen.tar.gz $(DESTDIR)$(PROJ_docsdir) - $(Verb) cd $(PROJ_OBJ_DIR)/doxygen && \ - $(FIND) . -type f -exec \ -- $(DataInstall) {} $(PROJ_docsdir)/html/doxygen \; -+ $(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/html/doxygen \; - - doxygen: regendoc $(PROJ_OBJ_DIR)/doxygen.tar.gz - -@@ -94,11 +94,11 @@ $(LLVM_SRC_ROOT)/docs/userloc.html: - - install-ocamldoc: ocamldoc - $(Echo) Installing ocamldoc documentation -- $(Verb) $(MKDIR) $(PROJ_docsdir)/ocamldoc/html -- $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/ocamldoc.tar.gz $(PROJ_docsdir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_docsdir)/ocamldoc/html -+ $(Verb) $(DataInstall) $(PROJ_OBJ_DIR)/ocamldoc.tar.gz $(DESTDIR)$(PROJ_docsdir) - $(Verb) cd $(PROJ_OBJ_DIR)/ocamldoc && \ - $(FIND) . -type f -exec \ -- $(DataInstall) {} $(PROJ_docsdir)/ocamldoc/html \; -+ $(DataInstall) {} $(DESTDIR)$(PROJ_docsdir)/ocamldoc/html \; - - ocamldoc: regen-ocamldoc $(PROJ_OBJ_DIR)/ocamldoc.tar.gz - -@@ -122,4 +122,4 @@ $(PROJ_OBJ_DIR)/ocamldoc.tar.gz: - - uninstall-local:: - $(Echo) Uninstalling Documentation -- $(Verb) $(RM) -rf $(PROJ_docsdir) -+ $(Verb) $(RM) -rf $(DESTDIR)$(PROJ_docsdir) -diff --git docs/tutorial/Makefile docs/tutorial/Makefile -index 6169bb8..9082ad4 100644 ---- docs/tutorial/Makefile -+++ docs/tutorial/Makefile -@@ -12,7 +12,7 @@ include $(LEVEL)/Makefile.common - - HTML := $(wildcard $(PROJ_SRC_DIR)/*.html) - EXTRA_DIST := $(HTML) index.html --HTML_DIR := $(PROJ_docsdir)/html/tutorial -+HTML_DIR := $(DESTDIR)$(PROJ_docsdir)/html/tutorial - - install-local:: $(HTML) - $(Echo) Installing HTML Tutorial Documentation -diff --git lib/VMCore/Makefile lib/VMCore/Makefile -index e9d3dc8..c4817a5 100644 ---- lib/VMCore/Makefile -+++ lib/VMCore/Makefile -@@ -29,5 +29,5 @@ $(GENFILE): $(ObjDir)/Intrinsics.gen.tmp - changed significantly. ) - - install-local:: $(GENFILE) -- $(Echo) Installing $(PROJ_includedir)/llvm/Intrinsics.gen -- $(Verb) $(DataInstall) $(GENFILE) $(PROJ_includedir)/llvm/Intrinsics.gen -+ $(Echo) Installing $(DESTDIR)$(PROJ_includedir)/llvm/Intrinsics.gen -+ $(Verb) $(DataInstall) $(GENFILE) $(DESTDIR)$(PROJ_includedir)/llvm/Intrinsics.gen -diff --git tools/gccas/Makefile tools/gccas/Makefile -index ff84d96..594f9e4 100644 ---- tools/gccas/Makefile -+++ tools/gccas/Makefile -@@ -10,9 +10,9 @@ LEVEL = ../.. - - include $(LEVEL)/Makefile.common - --install-local:: $(PROJ_bindir)/gccas -+install-local:: $(DESTDIR)$(PROJ_bindir)/gccas - --$(PROJ_bindir)/gccas : gccas.sh Makefile -+$(DESTDIR)$(PROJ_bindir)/gccas : gccas.sh Makefile - $(Echo) Installing gccas shell script. - $(Verb) sed "s#@TOOLDIR@#$(PROJ_bindir)#" $< > $@ - $(Verb) chmod 0755 $@ -diff --git tools/gccld/Makefile tools/gccld/Makefile -index b2d3f73..8ec0307 100644 ---- tools/gccld/Makefile -+++ tools/gccld/Makefile -@@ -11,9 +11,9 @@ LEVEL = ../.. - - include $(LEVEL)/Makefile.common - --install-local:: $(PROJ_bindir)/gccld -+install-local:: $(DESTDIR)$(PROJ_bindir)/gccld - --$(PROJ_bindir)/gccld : gccld.sh Makefile -+$(DESTDIR)$(PROJ_bindir)/gccld : gccld.sh Makefile - $(Echo) Installing gccld shell script. - $(Verb) sed "s#@TOOLDIR@#$(PROJ_bindir)#" $< > $@ - $(Verb) chmod 0755 $@ -diff --git tools/llvm-config/Makefile tools/llvm-config/Makefile -index 6eedca0..8659681 100644 ---- tools/llvm-config/Makefile -+++ tools/llvm-config/Makefile -@@ -87,6 +87,6 @@ clean-local:: - $(LibDeps) GenLibDeps.out - install-local:: all-local - $(Echo) Installing llvm-config -- $(Verb) $(MKDIR) $(PROJ_bindir) -- $(Verb) $(ScriptInstall) $(ToolDir)/llvm-config $(PROJ_bindir) -+ $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_bindir) -+ $(Verb) $(ScriptInstall) $(ToolDir)/llvm-config $(DESTDIR)$(PROJ_bindir) - - ---------------1.6.4-- - - diff --git a/llvm.spec b/llvm.spec index fc9bdfe..5154e5a 100644 --- a/llvm.spec +++ b/llvm.spec @@ -4,22 +4,17 @@ # The doxygen docs are HUGE, so they are not built by default. Name: llvm -Version: 2.6 -Release: 0.5.pre1%{?dist} +Version: 2.7 +Release: 1%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages License: NCSA URL: http://llvm.org/ -Source0: http://llvm.org/prereleases/%{version}/llvm-%{version}.tar.gz -Source1: http://llvm.org/prereleases/%{version}/clang-%{version}.tar.gz -# http://llvm.org/bugs/show_bug.cgi?id=3153 -Patch0: llvm-2.6-destdir.patch -Patch1: llvm-2.6-destdir-clang.patch -# http://llvm.org/bugs/show_bug.cgi?id=4911 -Patch2: llvm-2.5-tclsh_check.patch +Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz +Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz # Data files should be installed with timestamps preserved -Patch3: llvm-2.6-timestamp.patch +Patch0: llvm-2.6-timestamp.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -53,6 +48,7 @@ Summary: Libraries and header files for LLVM Group: Development/Languages Requires: %{name} = %{version}-%{release} Requires: libstdc++-devel >= 3.4 +Provides: llvm-static = %{version}-%{release} %description devel @@ -70,7 +66,7 @@ Documentation for the LLVM compiler infrastructure. %package -n clang -Summary: A C language family frontend for LLVM +Summary: A C language family front-end for LLVM License: NCSA Group: Development/Languages @@ -82,7 +78,16 @@ clang: noun The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler. Its tools are built -as libraries and designed to be loosely-coupled and extendable. +as libraries and designed to be loosely-coupled and extensible. + + +%package -n clang-devel +Summary: Header files for clang +Group: Development/Languages +Requires: clang = %{version}-%{release} + +%description -n clang-devel +This package contains header files for the Clang compiler. %package -n clang-analyzer @@ -137,6 +142,7 @@ Summary: Development files for %{name}-ocaml Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} Requires: %{name}-ocaml = %{version}-%{release} +Requires: ocaml %description ocaml-devel The %{name}-ocaml-devel package contains libraries and signature files @@ -155,19 +161,19 @@ HTML documentation for LLVM's OCaml binding. %prep %setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2} -mv clang-2.6 tools/clang +mv clang-%{version} tools/clang -%patch0 -p0 -b .destdir -pushd tools/clang -%patch1 -p0 -b .destdir-clang -popd -%patch2 -p1 -b .tclsh_check -%patch3 -p1 -b .timestamp +%patch0 -p1 -b .timestamp + +# Encoding fix +(cd tools/clang/docs && \ + iconv -f ISO88591 -t UTF8 BlockImplementation.txt \ + -o BlockImplementation.txt) %build # Disabling assertions now, rec. by pure and needed for OpenGTL -# no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3239 +# TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801 mkdir obj && cd obj ../configure \ --prefix=%{_prefix} \ @@ -175,9 +181,7 @@ mkdir obj && cd obj --disable-assertions \ --enable-debug-runtime \ --enable-jit \ -%ifarch %{ix86} - --enable-pic=no -%endif + --enable-shared # FIXME file this # configure does not properly specify libdir @@ -192,14 +196,10 @@ make %{_smp_mflags} \ %check -# some tests fail on PPC -# http://www.nabble.com/LLVM-2.6-pre1%3A-test-failures-on-Fedora-11.91-%28Rawhide%29-ppc-td25334198.html cd obj -%ifnarch ppc -make check -%endif -# some clang tests still fail, preserve test results -(cd tools/clang && make test 2>&1) | tee ../testlog.txt || true +# no current unexpected failures. Use || true if they recur to force ignore +make check 2>&1 | tee ../llvm-testlog.txt +(cd tools/clang && make test 2>&1) | tee ../clang-testlog.txt %install @@ -211,27 +211,23 @@ make install DESTDIR=%{buildroot} \ PROJ_docsdir=/moredocs popd +# Create ld.so.conf.d entry +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF +%{_libdir}/llvm +EOF + # Static analyzer not installed by default: # http://clang-analyzer.llvm.org/installation#OtherPlatforms -mkdir -p %{buildroot}%{_libdir}/clang-analyzer/libexec -# link clang-cc for scan-build to find -ln -s %{_libexecdir}/clang-cc %{buildroot}%{_libdir}/clang-analyzer/libexec/ +mkdir -p %{buildroot}%{_libdir}/clang-analyzer # create launchers for f in scan-{build,view}; do - ln -s %{_libdir}/clang-analyzer/$f %{buildroot}%{_bindir}/$f + ln -s %{_libdir}/clang-analyzer/$f/$f %{buildroot}%{_bindir}/$f done -pushd tools/clang/utils -cp -p ccc-analyzer %{buildroot}%{_libdir}/clang-analyzer/libexec/ +(cd tools/clang/tools && cp -pr scan-{build,view} \ + %{buildroot}%{_libdir}/clang-analyzer/) -for f in scan-build scanview.css sorttable.js; do - cp -p $f %{buildroot}%{_libdir}/clang-analyzer/ -done -popd - -pushd tools/clang/tools/scan-view -cp -pr * %{buildroot}%{_libdir}/clang-analyzer/ -popd # Move documentation back to build directory # @@ -248,17 +244,14 @@ done rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools} -find %{buildroot} -name .dir -print0 | xargs -0r rm -f +#find %{buildroot} -name .dir -print0 | xargs -0r rm -f file %{buildroot}/%{_bindir}/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d file %{buildroot}/%{_libdir}/llvm/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d -chrpath -d %{buildroot}/%{_libexecdir}/clang-cc +#chrpath -d %{buildroot}/%{_libexecdir}/clang-cc # Get rid of erroneously installed example files. rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.* -# Remove deprecated tools. -rm %{buildroot}%{_bindir}/gcc{as,ld} - # FIXME file this bug sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \ %{buildroot}%{_bindir}/llvm-config @@ -282,43 +275,38 @@ rm -rf %{buildroot} %files %defattr(-,root,root,-) -%doc CREDITS.TXT LICENSE.TXT README.txt -%exclude %{_bindir}/llvm-config +%doc CREDITS.TXT LICENSE.TXT README.txt llvm-testlog.txt %{_bindir}/bugpoint %{_bindir}/llc %{_bindir}/lli +%exclude %{_bindir}/llvm-config %{_bindir}/llvm* %{_bindir}/opt +%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf +%dir %{_libdir}/llvm +%{_libdir}/llvm/*.so %exclude %{_mandir}/man1/clang.1.* -%exclude %{_mandir}/man1/FileCheck.1.* -%doc %{_mandir}/man1/*.1.gz - -%if %{?_with_doxygen:1}%{!?_with_doxygen:0} -%exclude %{_bindir}/llvm-[cg]++ -%exclude %{_bindir}/llvm-gcc -%exclude %{_mandir}/man1/llvm-[cg]++.* -%exclude %{_mandir}/man1/llvm-gcc.* -%endif - +%doc %{_mandir}/man1/*.1.* %files devel %defattr(-,root,root,-) %{_bindir}/llvm-config %{_includedir}/%{name} %{_includedir}/%{name}-c -%{_libdir}/%{name} +%{_libdir}/%{name}/*.a %files -n clang %defattr(-,root,root,-) -%doc clang-docs/* testlog.txt +%doc clang-docs/* clang-testlog.txt %{_bindir}/clang* -%{_bindir}/FileCheck -%{_bindir}/FileUpdate %{_bindir}/tblgen %{_prefix}/lib/clang -%{_libexecdir}/clang-cc %doc %{_mandir}/man1/clang.1.* -%doc %{_mandir}/man1/FileCheck.1.* + +%files -n clang-devel +%defattr(-,root,root,-) +%{_includedir}/clang +%{_includedir}/clang-c %files -n clang-analyzer %defattr(-,root,root,-) @@ -358,6 +346,16 @@ rm -rf %{buildroot} %changelog +* Sun May 2 2010 Michel Salim - 2.7-1 +- Update to final 2.7 release + +* Sun Mar 28 2010 Michel Salim - 2.7-0.1.pre1 +- Update to first 2.7 pre-release + +* Fri Sep 18 2009 Michel Salim - 2.6-0.6.pre2 +- Update to 2.6 pre-release2 +- -devel subpackage now virtually provides -static + * Wed Sep 9 2009 Michel Salim - 2.6-0.5.pre1 - Disable var tracking assignments on PPC diff --git a/sources b/sources index 3548e88..107743e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d4d2cfbb962eca0c96aa1d794e23a681 llvm-2.6.tar.gz -80a2a9bbe8fa7c403b2ec7aca8b4108f clang-2.6.tar.gz +b83260aa8c13494adf8978b5f238bf1b clang-2.7.tgz +ac322661f20e7d6c810b1869f886ad9b llvm-2.7.tgz From c3a8e10d6ef79b927dd45c3a219a3bb3a7389329 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Sat, 5 Jun 2010 11:49:55 +0000 Subject: [PATCH 03/39] - Add F-12/x86_64 and F-13 C++ header paths --- llvm-2.7-cxx_includes.patch | 36 +++++++++++++++++++ llvm.spec | 70 ++++++++++++++++++++++++++++--------- 2 files changed, 90 insertions(+), 16 deletions(-) create mode 100644 llvm-2.7-cxx_includes.patch diff --git a/llvm-2.7-cxx_includes.patch b/llvm-2.7-cxx_includes.patch new file mode 100644 index 0000000..8b36882 --- /dev/null +++ b/llvm-2.7-cxx_includes.patch @@ -0,0 +1,36 @@ +--- llvm-2.7/tools/clang/lib/Frontend/InitHeaderSearch.cpp.cxx_includes 2010-03-06 20:38:10.000000000 +0100 ++++ llvm-2.7/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2010-06-05 13:43:03.150438148 +0200 +@@ -524,10 +524,32 @@ + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.2", + "i686-redhat-linux","", "", triple); + ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.2", ++ "x86_64-redhat-linux", "32", "", triple); ++ ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.2", ++ "ppc64-redhat-linux", "64", "", triple); ++ + // Fedora 12 (February-2010+) + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3", + "i686-redhat-linux","", "", triple); +- ++ ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3", ++ "x86_64-redhat-linux", "32", "", triple); ++ ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3", ++ "ppc64-redhat-linux", "64", "", triple); ++ ++ // Fedora 13 ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.4", ++ "i686-redhat-linux","", "", triple); ++ ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.4", ++ "x86_64-redhat-linux", "32", "", triple); ++ ++ AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.4", ++ "ppc64-redhat-linux", "64", "", triple); ++ + // openSUSE 11.1 32 bit + AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3", + "i586-suse-linux", "", "", triple); diff --git a/llvm.spec b/llvm.spec index 5154e5a..9a63ae3 100644 --- a/llvm.spec +++ b/llvm.spec @@ -5,7 +5,7 @@ Name: llvm Version: 2.7 -Release: 1%{?dist} +Release: 4%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -15,6 +15,8 @@ Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz # Data files should be installed with timestamps preserved Patch0: llvm-2.6-timestamp.patch +# http://llvm.org/bugs/show_bug.cgi?id=7307 +Patch1: llvm-2.7-cxx_includes.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) @@ -27,7 +29,8 @@ BuildRequires: libtool-ltdl-devel BuildRequires: ocaml-ocamldoc # for DejaGNU test suite BuildRequires: dejagnu tcl-devel python -%if %{?_with_doxygen:1}%{!?_with_doxygen:0} +# for doxygen documentation +%if 0%{?_with_doxygen} BuildRequires: doxygen graphviz %endif @@ -59,6 +62,7 @@ native programs that use the LLVM infrastructure. %package doc Summary: Documentation for LLVM Group: Documentation +BuildArch: noarch Requires: %{name} = %{version}-%{release} %description doc @@ -109,21 +113,34 @@ intended to run in tandem with a build of a project or code base. %package -n clang-doc Summary: Documentation for Clang Group: Documentation +BuildArch: noarch Requires: %{name} = %{version}-%{release} %description -n clang-doc Documentation for the Clang compiler front-end. -%if %{?_with_doxygen:1}%{!?_with_doxygen:0} +%if 0%{?_with_doxygen} %package apidoc Summary: API documentation for LLVM Group: Development/Languages -Requires: %{name}-docs = %{version}-%{release} +BuildArch: noarch +Requires: %{name}-doc = %{version}-%{release} %description apidoc API documentation for the LLVM compiler infrastructure. + + +%package -n clang-apidoc +Summary: API documentation for Clang +Group: Development/Languages +BuildArch: noarch +Requires: clang-doc = %{version}-%{release} + + +%description -n clang-apidoc +API documentation for the Clang compiler. %endif @@ -152,6 +169,7 @@ for developing applications that use %{name}-ocaml. %package ocaml-doc Summary: Documentation for LLVM's OCaml binding Group: Documentation +BuildArch: noarch Requires: %{name}-ocaml = %{version}-%{release} %description ocaml-doc @@ -164,6 +182,7 @@ HTML documentation for LLVM's OCaml binding. mv clang-%{version} tools/clang %patch0 -p1 -b .timestamp +%patch1 -p1 -b .cxx_includes # Encoding fix (cd tools/clang/docs && \ @@ -174,10 +193,13 @@ mv clang-%{version} tools/clang %build # Disabling assertions now, rec. by pure and needed for OpenGTL # TESTFIX no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3801 -mkdir obj && cd obj -../configure \ +%configure \ --prefix=%{_prefix} \ --libdir=%{_libdir}/%{name} \ + --datadir=%{_libdir}/%{name} \ +%if 0%{?_with_doxygen} + --enable-doxygen \ +%endif --disable-assertions \ --enable-debug-runtime \ --enable-jit \ @@ -196,20 +218,15 @@ make %{_smp_mflags} \ %check -cd obj # no current unexpected failures. Use || true if they recur to force ignore -make check 2>&1 | tee ../llvm-testlog.txt -(cd tools/clang && make test 2>&1) | tee ../clang-testlog.txt +make check 2>&1 | tee llvm-testlog.txt +(cd tools/clang && make test 2>&1) | tee clang-testlog.txt %install rm -rf %{buildroot} -pushd obj -chmod -x examples/Makefile - make install DESTDIR=%{buildroot} \ PROJ_docsdir=/moredocs -popd # Create ld.so.conf.d entry mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d @@ -235,6 +252,12 @@ mv %{buildroot}/moredocs . rm moredocs/*.tar.gz rm moredocs/ocamldoc/html/*.tar.gz +# and separate the apidoc +%if 0%{?_with_doxygen} +mv moredocs/html/doxygen apidoc +mv tools/clang/docs/doxygen/html clang-apidoc +%endif + # And prepare Clang documentation # mkdir clang-docs @@ -286,6 +309,7 @@ rm -rf %{buildroot} %dir %{_libdir}/llvm %{_libdir}/llvm/*.so %exclude %{_mandir}/man1/clang.1.* +%exclude %{_mandir}/man1/llvmg??.1.* %doc %{_mandir}/man1/*.1.* %files devel @@ -337,15 +361,29 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %doc moredocs/ocamldoc/html/* -%if %{?_with_doxygen:1}%{!?_with_doxygen:0} +%if 0%{?_with_doxygen} %files apidoc %defattr(-,root,root,-) -%doc docs/doxygen +%doc apidoc/* + +%files -n clang-apidoc +%defattr(-,root,root,-) +%doc clang-apidoc/* %endif - %changelog +* Sat Jun 5 2010 Michel Salim - 2.7-4 +- Add F-12/x86_64 and F-13 C++ header paths + +* Wed May 26 2010 Michel Salim - 2.7-3 +- Revert to disabling apidoc by default + +* Mon May 24 2010 Michel Salim - 2.7-2 +- Exclude llm-gcc manpages +- Turn on apidoc generation +- Build with srcdir=objdir, otherwise clang doxygen build fails + * Sun May 2 2010 Michel Salim - 2.7-1 - Update to final 2.7 release From aadedc69fa661997004ac22c9423ca78542de506 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Wed, 9 Jun 2010 18:51:38 +0000 Subject: [PATCH 04/39] - Make the new noarch -doc obsoletes older (arched) subpackages --- llvm.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 9a63ae3..ed190fd 100644 --- a/llvm.spec +++ b/llvm.spec @@ -5,7 +5,7 @@ Name: llvm Version: 2.7 -Release: 4%{?dist} +Release: 5%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -64,6 +64,9 @@ Summary: Documentation for LLVM Group: Documentation BuildArch: noarch Requires: %{name} = %{version}-%{release} +# might seem redundant, but needed to kill off the old arch-ed -doc +# subpackage +Obsoletes: %{name}-doc < %{version}-%{release} %description doc Documentation for the LLVM compiler infrastructure. @@ -373,6 +376,9 @@ rm -rf %{buildroot} %changelog +* Mon Jun 7 2010 Michel Salim - 2.7-5 +- Make the new noarch -doc obsoletes older (arched) subpackages + * Sat Jun 5 2010 Michel Salim - 2.7-4 - Add F-12/x86_64 and F-13 C++ header paths From 909e8522df04d944d2d34b0f0400cc74312c64ca Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Thu, 8 Jul 2010 01:23:30 +0000 Subject: [PATCH 05/39] Initialize branch EL-6 for llvm --- branch | 1 + 1 file changed, 1 insertion(+) create mode 100644 branch diff --git a/branch b/branch new file mode 100644 index 0000000..46381b9 --- /dev/null +++ b/branch @@ -0,0 +1 @@ +EL-6 From b1d5f04c67859de3f902d936ea9be5e62e755276 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 29 Jul 2010 02:29:28 +0000 Subject: [PATCH 06/39] dist-git conversion --- .cvsignore => .gitignore | 0 Makefile | 21 --------------------- branch | 1 - 3 files changed, 22 deletions(-) rename .cvsignore => .gitignore (100%) delete mode 100644 Makefile delete mode 100644 branch diff --git a/.cvsignore b/.gitignore similarity index 100% rename from .cvsignore rename to .gitignore diff --git a/Makefile b/Makefile deleted file mode 100644 index 095153e..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: llvm -# $Id: Makefile,v 1.1 2008/01/21 17:30:08 kevin Exp $ -NAME := llvm -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/branch b/branch deleted file mode 100644 index 46381b9..0000000 --- a/branch +++ /dev/null @@ -1 +0,0 @@ -EL-6 From 57df0cc54a656563c6a1d44f3dce111f9563601c Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Wed, 11 Aug 2010 17:46:43 -0400 Subject: [PATCH 07/39] recompiling .py files against Python 2.7 (rhbz#623332) --- llvm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 604ad36..57341f2 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.7 -Release: 6%{?dist} +Release: 7%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -388,6 +388,9 @@ rm -rf %{buildroot} %changelog +* Wed Aug 11 2010 David Malcolm - 2.7-7 +- recompiling .py files against Python 2.7 (rhbz#623332) + * Sat Jul 17 2010 Dan Horák - 2.7-6 - conditionalize ocaml support From d492cae130c0a0c764246163d009225488574ab0 Mon Sep 17 00:00:00 2001 From: Jesse Keating Date: Wed, 29 Sep 2010 22:56:01 -0700 Subject: [PATCH 08/39] - Rebuilt for gcc bug 634757 --- llvm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index fd445fd..4129fb2 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.7 -Release: 9%{?dist} +Release: 9%{?dist}.1 Summary: The Low Level Virtual Machine Group: Development/Languages @@ -381,6 +381,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Wed Sep 29 2010 jkeating - 2.7-9.1 +- Rebuilt for gcc bug 634757 + * Mon Sep 20 2010 Michel Salim - 2.7-9 - Dynamically determine C++ include path at compile time (# 630474) - Remove unneeded BuildRoot field and clean section From ae1ead319b7a2c8652f952e401d7b82c970631f4 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 14 Oct 2010 23:26:34 +0200 Subject: [PATCH 09/39] - Add correct C include directory at compile time (# 641500) - Upstream patch so -g flag is not passed to assembler (# 605266) --- clang-2.7-nodebug.patch | 19 +++++++++++++++++++ llvm.spec | 11 ++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 clang-2.7-nodebug.patch diff --git a/clang-2.7-nodebug.patch b/clang-2.7-nodebug.patch new file mode 100644 index 0000000..4bb2f94 --- /dev/null +++ b/clang-2.7-nodebug.patch @@ -0,0 +1,19 @@ +Upstream revision 11011, fixing bug 6218: +http://llvm.org/bugs/show_bug.cgi?id=6218 + +--- cfe/trunk/lib/Driver/Tools.cpp 2010/08/03 15:07:17 110110 ++++ cfe/trunk/lib/Driver/Tools.cpp 2010/08/03 16:14:14 110111 +@@ -1600,6 +1600,11 @@ + it = Args.begin(), ie = Args.end(); it != ie; ++it) { + Arg *A = *it; + if (A->getOption().hasForwardToGCC()) { ++ // Don't forward any -g arguments to assembly steps. ++ if (isa(JA) && ++ A->getOption().matches(options::OPT_g_Group)) ++ continue; ++ + // It is unfortunate that we have to claim here, as this means + // we will basically never report anything interesting for + // platforms using a generic gcc, even if we are just using gcc + + diff --git a/llvm.spec b/llvm.spec index 4129fb2..97d7231 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.7 -Release: 9%{?dist}.1 +Release: 10%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -22,6 +22,7 @@ Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz # Data files should be installed with timestamps preserved Patch0: llvm-2.6-timestamp.patch +Patch1: clang-2.7-nodebug.patch BuildRequires: bison BuildRequires: chrpath @@ -191,6 +192,9 @@ HTML documentation for LLVM's OCaml binding. mv clang-%{version} tools/clang %patch0 -p1 -b .timestamp +pushd tools/clang +%patch1 -p2 -b .nodebug +popd # Encoding fix (cd tools/clang/docs && \ @@ -212,6 +216,7 @@ mv clang-%{version} tools/clang --enable-debug-runtime \ --enable-jit \ --enable-shared \ + --with-c-include-dirs=$(echo /usr/lib/gcc/*/*/include) \ --with-cxx-include-root=$(echo /usr/include/c++/*) \ --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} @@ -381,6 +386,10 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Thu Oct 14 2010 Michel Salim - 2.7-10 +- Add correct C include directory at compile time (# 641500) +- Upstream patch so -g flag is not passed to assembler (# 605266) + * Wed Sep 29 2010 jkeating - 2.7-9.1 - Rebuilt for gcc bug 634757 From b3327249f3dda539b44a535dcaea83ef2a69e752 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 14 Oct 2010 23:58:09 +0200 Subject: [PATCH 10/39] Re-add default include directory --- llvm.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 97d7231..e344150 100644 --- a/llvm.spec +++ b/llvm.spec @@ -216,7 +216,7 @@ popd --enable-debug-runtime \ --enable-jit \ --enable-shared \ - --with-c-include-dirs=$(echo /usr/lib/gcc/*/*/include) \ + --with-c-include-dirs=/usr/include:$(echo /usr/lib/gcc/*/*/include) \ --with-cxx-include-root=$(echo /usr/include/c++/*) \ --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} From 63bfe803a91921f392a802c701a4a1434d2c9ff9 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Fri, 15 Oct 2010 00:01:05 +0200 Subject: [PATCH 11/39] macro-ify include overrides --- llvm.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index e344150..ed6b4f3 100644 --- a/llvm.spec +++ b/llvm.spec @@ -216,8 +216,8 @@ popd --enable-debug-runtime \ --enable-jit \ --enable-shared \ - --with-c-include-dirs=/usr/include:$(echo /usr/lib/gcc/*/*/include) \ - --with-cxx-include-root=$(echo /usr/include/c++/*) \ + --with-c-include-dirs=%{_includedir}:$(echo %{_prefix}/lib/gcc/*/*/include) \ + --with-cxx-include-root=$(echo %{_includedir}/c++/*) \ --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} # FIXME file this From 2be1863ab3a7c22390955a68a6226de803d45918 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Fri, 15 Oct 2010 00:05:07 +0200 Subject: [PATCH 12/39] Bump release number for rebuild --- llvm.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index ed6b4f3..f0427fd 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.7 -Release: 10%{?dist} +Release: 11%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -386,6 +386,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Fri Oct 15 2010 Michel Salim - 2.7-11 +- Re-add omitted %%{_includedir} + * Thu Oct 14 2010 Michel Salim - 2.7-10 - Add correct C include directory at compile time (# 641500) - Upstream patch so -g flag is not passed to assembler (# 605266) From 9fd9a8115dca853974d9cac6191595015135aa30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Sat, 17 Jul 2010 13:43:22 +0000 Subject: [PATCH 13/39] - conditionalize ocaml support (cherry picked from commit 434321d311f0fa73a52c9853ad5a77e851add469) --- llvm.spec | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/llvm.spec b/llvm.spec index ed190fd..604ad36 100644 --- a/llvm.spec +++ b/llvm.spec @@ -3,9 +3,16 @@ # --with doxygen # The doxygen docs are HUGE, so they are not built by default. +%ifarch s390 s390x + # No ocaml on these arches + %bcond_with ocaml +%else + %bcond_without ocaml +%endif + Name: llvm Version: 2.7 -Release: 5%{?dist} +Release: 6%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -26,7 +33,9 @@ BuildRequires: flex BuildRequires: gcc-c++ >= 3.4 BuildRequires: groff BuildRequires: libtool-ltdl-devel +%if %{with ocaml} BuildRequires: ocaml-ocamldoc +%endif # for DejaGNU test suite BuildRequires: dejagnu tcl-devel python # for doxygen documentation @@ -147,6 +156,7 @@ API documentation for the Clang compiler. %endif +%if %{with ocaml} %package ocaml Summary: OCaml binding for LLVM Group: Development/Libraries @@ -177,7 +187,7 @@ Requires: %{name}-ocaml = %{version}-%{release} %description ocaml-doc HTML documentation for LLVM's OCaml binding. - +%endif %prep @@ -252,8 +262,8 @@ done # Move documentation back to build directory # mv %{buildroot}/moredocs . -rm moredocs/*.tar.gz -rm moredocs/ocamldoc/html/*.tar.gz +rm -f moredocs/*.tar.gz +rm -f moredocs/ocamldoc/html/*.tar.gz # and separate the apidoc %if 0%{?_with_doxygen} @@ -349,6 +359,7 @@ rm -rf %{buildroot} %defattr(-,root,root,-) %doc examples moredocs/html +%if %{with ocaml} %files ocaml %defattr(-,root,root,-) %{_libdir}/ocaml/*.cma @@ -363,6 +374,7 @@ rm -rf %{buildroot} %files ocaml-doc %defattr(-,root,root,-) %doc moredocs/ocamldoc/html/* +%endif %if 0%{?_with_doxygen} %files apidoc @@ -376,6 +388,9 @@ rm -rf %{buildroot} %changelog +* Sat Jul 17 2010 Dan Horák - 2.7-6 +- conditionalize ocaml support + * Mon Jun 7 2010 Michel Salim - 2.7-5 - Make the new noarch -doc obsoletes older (arched) subpackages From 67f86fc6128b089317215748f822ab70d79b8e8d Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Sat, 27 Nov 2010 17:39:46 +0100 Subject: [PATCH 14/39] remove obsoleted patch --- clang-2.7-nodebug.patch | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 clang-2.7-nodebug.patch diff --git a/clang-2.7-nodebug.patch b/clang-2.7-nodebug.patch deleted file mode 100644 index 4bb2f94..0000000 --- a/clang-2.7-nodebug.patch +++ /dev/null @@ -1,19 +0,0 @@ -Upstream revision 11011, fixing bug 6218: -http://llvm.org/bugs/show_bug.cgi?id=6218 - ---- cfe/trunk/lib/Driver/Tools.cpp 2010/08/03 15:07:17 110110 -+++ cfe/trunk/lib/Driver/Tools.cpp 2010/08/03 16:14:14 110111 -@@ -1600,6 +1600,11 @@ - it = Args.begin(), ie = Args.end(); it != ie; ++it) { - Arg *A = *it; - if (A->getOption().hasForwardToGCC()) { -+ // Don't forward any -g arguments to assembly steps. -+ if (isa(JA) && -+ A->getOption().matches(options::OPT_g_Group)) -+ continue; -+ - // It is unfortunate that we have to claim here, as this means - // we will basically never report anything interesting for - // platforms using a generic gcc, even if we are just using gcc - - From f8523b8fdb3e2f63edcbf63b361f4e23169abcba Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 12:47:48 +0100 Subject: [PATCH 15/39] clang++: also search for platform-specific include files (# 680644) --- llvm.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index 3535c9c..8cc1bf1 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 7%{?dist} +Release: 8%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -225,7 +225,9 @@ popd --with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \ -maxdepth 0 -type d)/include \ --with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \ - --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} + --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} \ + --with-cxx-include-32bit-dir=$(find %{_includedir}/c++/* -maxdepth 0 -type d)/%{_arch}-%{_vendor}-%{_os}/32/bits \ + --with-cxx-include-64bit-dir=$(find %{_includedir}/c++/* -maxdepth 0 -type d)/%{_arch}-%{_vendor}-%{_os}/bits # FIXME file this # configure does not properly specify libdir @@ -394,6 +396,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Thu Mar 17 2011 Michel Salim - 2.8-8 +- clang++: also search for platform-specific include files (# 680644) + * Tue Feb 08 2011 Fedora Release Engineering - 2.8-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild From b32ca652bd0332a0c0bc69d25d53e017c28b91ad Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 13:19:24 +0100 Subject: [PATCH 16/39] Fix 32bit-dir and 64-dir parameters: should be relative, not absolute --- llvm.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index 8cc1bf1..ed3398e 100644 --- a/llvm.spec +++ b/llvm.spec @@ -226,8 +226,8 @@ popd -maxdepth 0 -type d)/include \ --with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \ --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} \ - --with-cxx-include-32bit-dir=$(find %{_includedir}/c++/* -maxdepth 0 -type d)/%{_arch}-%{_vendor}-%{_os}/32/bits \ - --with-cxx-include-64bit-dir=$(find %{_includedir}/c++/* -maxdepth 0 -type d)/%{_arch}-%{_vendor}-%{_os}/bits + --with-cxx-include-32bit-dir=32/bits \ + --with-cxx-include-64bit-dir=bits # FIXME file this # configure does not properly specify libdir From 88425e38fa4f0a91e009f2abf5c1f8a0ef018666 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 13:57:46 +0100 Subject: [PATCH 17/39] Don't include 'bits' in the include path override --- llvm.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index ed3398e..4c70a56 100644 --- a/llvm.spec +++ b/llvm.spec @@ -226,8 +226,7 @@ popd -maxdepth 0 -type d)/include \ --with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \ --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} \ - --with-cxx-include-32bit-dir=32/bits \ - --with-cxx-include-64bit-dir=bits + --with-cxx-include-32bit-dir=32 # FIXME file this # configure does not properly specify libdir From 1db435d4d684491a4e4686532b5e3d3c7b822bd6 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 14:34:26 +0100 Subject: [PATCH 18/39] clang++: fix platform-specific include dirs (# 680644) --- llvm.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index 4c70a56..cb65824 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 8%{?dist} +Release: 9%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -86,7 +86,7 @@ Summary: A C language family front-end for LLVM License: NCSA Group: Development/Languages # clang requires gcc; clang++ gcc-c++ -Requires: gcc-c++ +Requires: gcc-c++ %description -n clang clang: noun @@ -395,6 +395,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Thu Mar 17 2011 Michel Salim - 2.8-9 +- clang++: fix platform-specific include dirs (# 680644) + * Thu Mar 17 2011 Michel Salim - 2.8-8 - clang++: also search for platform-specific include files (# 680644) From 9eb64e881c947522632659f8202998132b657f44 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 17:36:08 +0100 Subject: [PATCH 19/39] Don't include test logs; breaks multilib (# 666195) --- llvm.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/llvm.spec b/llvm.spec index cb65824..0e9dc2a 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 9%{?dist} +Release: 10%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -317,7 +317,7 @@ find examples -name 'Makefile' | xargs -0r rm -f %files %defattr(-,root,root,-) -%doc CREDITS.TXT LICENSE.TXT README.txt llvm-testlog.txt +%doc CREDITS.TXT LICENSE.TXT README.txt %{_bindir}/bugpoint %{_bindir}/llc %{_bindir}/lli @@ -340,7 +340,7 @@ find examples -name 'Makefile' | xargs -0r rm -f %files -n clang %defattr(-,root,root,-) -%doc clang-docs/* clang-testlog.txt +%doc clang-docs/* %{_bindir}/clang* %{_bindir}/c-index-test %{_bindir}/tblgen @@ -395,6 +395,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Thu Mar 17 2011 Michel Salim - 2.8-10 +- Don't include test logs; breaks multilib (# 666195) + * Thu Mar 17 2011 Michel Salim - 2.8-9 - clang++: fix platform-specific include dirs (# 680644) From c3dcc7c01f9c83c752cb6bb2491634bbc526b740 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 18:24:51 +0100 Subject: [PATCH 20/39] Don't include test logs; breaks multilib (# 666195) Split shared libraries into separate subpackage --- llvm.spec | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/llvm.spec b/llvm.spec index 0e9dc2a..5b09907 100644 --- a/llvm.spec +++ b/llvm.spec @@ -42,6 +42,7 @@ BuildRequires: dejagnu tcl-devel python %if 0%{?_with_doxygen} BuildRequires: doxygen graphviz %endif +Requires: llvm-libs = %{version}-%{release} # LLVM is not supported on PPC64 # http://llvm.org/bugs/show_bug.cgi?id=3729 @@ -81,10 +82,19 @@ Obsoletes: %{name}-doc < %{version}-%{release} Documentation for the LLVM compiler infrastructure. +%package libs +Summary: LLVM shared libraries +Group: System Environment/Libraries + +%description libs +Shared libraries for the LLVM compiler infrastructure. + + %package -n clang Summary: A C language family front-end for LLVM License: NCSA Group: Development/Languages +Requires: llvm = %{version}-%{release} # clang requires gcc; clang++ gcc-c++ Requires: gcc-c++ @@ -324,9 +334,6 @@ find examples -name 'Makefile' | xargs -0r rm -f %exclude %{_bindir}/llvm-config %{_bindir}/llvm* %{_bindir}/opt -%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf -%dir %{_libdir}/llvm -%{_libdir}/llvm/*.so %exclude %{_mandir}/man1/clang.1.* %exclude %{_mandir}/man1/llvmg??.1.* %doc %{_mandir}/man1/*.1.* @@ -338,12 +345,20 @@ find examples -name 'Makefile' | xargs -0r rm -f %{_includedir}/%{name}-c %{_libdir}/%{name}/*.a +%files libs +%defattr(-,root,root,-) +%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf +%dir %{_libdir}/%{name} +%exclude %{_libdir}/%{name}/libclang.so +%{_libdir}/%{name}/*.so + %files -n clang %defattr(-,root,root,-) %doc clang-docs/* %{_bindir}/clang* %{_bindir}/c-index-test %{_bindir}/tblgen +%{_libdir}/%{name}/libclang.so %{_prefix}/lib/clang %doc %{_mandir}/man1/clang.1.* @@ -397,6 +412,7 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog * Thu Mar 17 2011 Michel Salim - 2.8-10 - Don't include test logs; breaks multilib (# 666195) +- Split shared libraries into separate subpackage * Thu Mar 17 2011 Michel Salim - 2.8-9 - clang++: fix platform-specific include dirs (# 680644) From 2fc8420d0f49fdd4234968aba41c1c0d3817e295 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Thu, 17 Mar 2011 19:03:50 +0100 Subject: [PATCH 21/39] Move ldconfig triggers to the subpackages containing .so files --- llvm.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index 5b09907..27e4df4 100644 --- a/llvm.spec +++ b/llvm.spec @@ -319,10 +319,12 @@ chmod -x %{buildroot}%{_libdir}/%{name}/*.a find examples -name 'Makefile' | xargs -0r rm -f -%post -p /sbin/ldconfig +%post libs -p /sbin/ldconfig +%post -n clang -p /sbin/ldconfig -%postun -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig +%postun -n clang -p /sbin/ldconfig %files From f63f5284807a67b47d5bb558520227d0ee8ad210 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 26 Apr 2011 12:01:42 -0400 Subject: [PATCH 22/39] disable avx code generation --- llvm-2.8-disable-avx.patch | 67 ++++++++++++++++++++++++++++++++++++++ llvm.spec | 7 +++- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 llvm-2.8-disable-avx.patch diff --git a/llvm-2.8-disable-avx.patch b/llvm-2.8-disable-avx.patch new file mode 100644 index 0000000..4bdfb58 --- /dev/null +++ b/llvm-2.8-disable-avx.patch @@ -0,0 +1,67 @@ +diff -up llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx llvm-2.8/lib/Target/X86/X86Subtarget.cpp +--- llvm-2.8/lib/Target/X86/X86Subtarget.cpp.jx 2010-08-21 13:21:11.000000000 -0400 ++++ llvm-2.8/lib/Target/X86/X86Subtarget.cpp 2011-04-26 16:02:52.238855091 -0400 +@@ -262,7 +262,7 @@ void X86Subtarget::AutoDetectSubtargetFe + + HasCLMUL = IsIntel && ((ECX >> 1) & 0x1); + HasFMA3 = IsIntel && ((ECX >> 12) & 0x1); +- HasAVX = ((ECX >> 28) & 0x1); ++ HasAVX = 0; + HasAES = IsIntel && ((ECX >> 25) & 0x1); + + if (IsIntel || IsAMD) { +diff -up llvm-2.8/lib/Target/X86/X86Subtarget.h.jx llvm-2.8/lib/Target/X86/X86Subtarget.h +--- llvm-2.8/lib/Target/X86/X86Subtarget.h.jx 2010-09-02 19:03:46.000000000 -0400 ++++ llvm-2.8/lib/Target/X86/X86Subtarget.h 2011-04-26 16:01:23.336855019 -0400 +@@ -150,7 +150,7 @@ public: + bool hasSSE4A() const { return HasSSE4A; } + bool has3DNow() const { return X863DNowLevel >= ThreeDNow; } + bool has3DNowA() const { return X863DNowLevel >= ThreeDNowA; } +- bool hasAVX() const { return HasAVX; } ++ bool hasAVX() const { return false; } + bool hasAES() const { return HasAES; } + bool hasCLMUL() const { return HasCLMUL; } + bool hasFMA3() const { return HasFMA3; } +diff -up llvm-2.8/lib/Target/X86/X86.td.jx llvm-2.8/lib/Target/X86/X86.td +--- llvm-2.8/lib/Target/X86/X86.td.jx 2010-08-11 20:55:32.000000000 -0400 ++++ llvm-2.8/lib/Target/X86/X86.td 2011-04-26 16:02:21.127854790 -0400 +@@ -116,7 +116,8 @@ def : Proc<"westmere", [FeatureS + FeatureFastUAMem, FeatureAES]>; + // Sandy Bridge does not have FMA + // FIXME: Wikipedia says it does... it should have AES as well. +-def : Proc<"sandybridge", [FeatureSSE42, FeatureAVX, Feature64Bit]>; ++// FEDORA: AVX is broken in 2.8 ++def : Proc<"sandybridge", [FeatureSSE42, Feature64Bit]>; + + def : Proc<"k6", [FeatureMMX]>; + def : Proc<"k6-2", [FeatureMMX, Feature3DNow]>; +diff -up llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx llvm-2.8/tools/clang/lib/Basic/Targets.cpp +--- llvm-2.8/tools/clang/lib/Basic/Targets.cpp.jx 2010-08-31 12:44:54.000000000 -0400 ++++ llvm-2.8/tools/clang/lib/Basic/Targets.cpp 2011-04-26 16:03:40.768855658 -0400 +@@ -1048,8 +1048,6 @@ bool X86TargetInfo::setFeatureEnabled(ll + Features["3dnow"] = Features["3dnowa"] = true; + else if (Name == "aes") + Features["aes"] = true; +- else if (Name == "avx") +- Features["avx"] = true; + } else { + if (Name == "mmx") + Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] = +@@ -1101,7 +1099,6 @@ void X86TargetInfo::HandleTargetFeatures + // FIXME: Not sure yet how to treat AVX in regard to SSE levels. + // For now let it be enabled together with other SSE levels. + if (Features[i].substr(1) == "avx") { +- HasAVX = true; + continue; + } + +@@ -1146,9 +1143,6 @@ void X86TargetInfo::getTargetDefines(con + if (HasAES) + Builder.defineMacro("__AES__"); + +- if (HasAVX) +- Builder.defineMacro("__AVX__"); +- + // Target properties. + Builder.defineMacro("__LITTLE_ENDIAN__"); + diff --git a/llvm.spec b/llvm.spec index 27e4df4..77ee964 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 10%{?dist} +Release: 11%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -26,6 +26,7 @@ Patch0: llvm-2.6-timestamp.patch # http://llvm.org/bugs/show_bug.cgi?id=8423 Patch1: llvm-2.8-alignOf.patch Patch2: clang-2.8-alignOf.patch +Patch3: llvm-2.8-disable-avx.patch BuildRequires: bison BuildRequires: chrpath @@ -211,6 +212,7 @@ mv clang-%{version} tools/clang pushd tools/clang %patch2 -p0 -b .alignOf popd +%patch3 -p1 -b .avx # Encoding fix #(cd tools/clang/docs && \ @@ -412,6 +414,9 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Tue Apr 26 2011 Adam Jackson 2.8-11 +- llvm-2.8-disable-avx.patch: Disable AVX code generation. (#699896) + * Thu Mar 17 2011 Michel Salim - 2.8-10 - Don't include test logs; breaks multilib (# 666195) - Split shared libraries into separate subpackage From 687c13802d20f2ff1f155ac607f7936f44faeafb Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Mon, 1 Aug 2011 18:50:42 +0200 Subject: [PATCH 23/39] Depend on libffi to allow the LLVM interpreter to call external functions Build with RTTI enabled, needed by e.g. Rubinius (# 722714) Fix multilib installation --- clang-2.9-add_gcc_vers.patch | 12 ++++++ llvm-Config-config.h | 9 +++++ llvm-Config-llvm-config.h | 9 +++++ llvm.spec | 76 ++++++++++++++++++++++++++++++------ 4 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 clang-2.9-add_gcc_vers.patch create mode 100644 llvm-Config-config.h create mode 100644 llvm-Config-llvm-config.h diff --git a/clang-2.9-add_gcc_vers.patch b/clang-2.9-add_gcc_vers.patch new file mode 100644 index 0000000..03afe49 --- /dev/null +++ b/clang-2.9-add_gcc_vers.patch @@ -0,0 +1,12 @@ +--- clang-2.9/lib/Driver/ToolChains.cpp.add_gcc_vers 2011-03-21 22:29:27.000000000 +0100 ++++ clang-2.9/lib/Driver/ToolChains.cpp 2011-08-01 18:20:29.504194241 +0200 +@@ -1449,7 +1449,8 @@ + GccTriple = "i586-suse-linux"; + } + +- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", ++ const char* GccVersions[] = {"4.6.1", "4.6.0", ++ "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", + "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2", + "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1", + "4.2"}; diff --git a/llvm-Config-config.h b/llvm-Config-config.h new file mode 100644 index 0000000..c369b45 --- /dev/null +++ b/llvm-Config-config.h @@ -0,0 +1,9 @@ +#include + +#if __WORDSIZE == 32 +#include "config-32.h" +#elif __WORDSIZE == 64 +#include "config-64.h" +#else +#error "Unknown word size" +#endif diff --git a/llvm-Config-llvm-config.h b/llvm-Config-llvm-config.h new file mode 100644 index 0000000..2fa08c9 --- /dev/null +++ b/llvm-Config-llvm-config.h @@ -0,0 +1,9 @@ +#include + +#if __WORDSIZE == 32 +#include "llvm-config-32.h" +#elif __WORDSIZE == 64 +#include "llvm-config-64.h" +#else +#error "Unknown word size" +#endif diff --git a/llvm.spec b/llvm.spec index 77ee964..ec62c8e 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 11%{?dist} +Release: 12%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -20,19 +20,31 @@ License: NCSA URL: http://llvm.org/ Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tgz Source1: http://llvm.org/releases/%{version}/clang-%{version}.tgz +# multilib fixes +Source2: llvm-Config-config.h +Source3: llvm-Config-llvm-config.h + # Data files should be installed with timestamps preserved Patch0: llvm-2.6-timestamp.patch # rename alignof -> alignOf for C++0x support # http://llvm.org/bugs/show_bug.cgi?id=8423 Patch1: llvm-2.8-alignOf.patch Patch2: clang-2.8-alignOf.patch +# Disable broken AVX code generation +# http://llvm.org/bugs/show_bug.cgi?id=9508 Patch3: llvm-2.8-disable-avx.patch +# clang link failure if system GCC version is unknown +# http://llvm.org/bugs/show_bug.cgi?id=8897 +# Patch4: clang-2.9-add_gcc_vers.patch + + BuildRequires: bison BuildRequires: chrpath BuildRequires: flex BuildRequires: gcc-c++ >= 3.4 BuildRequires: groff +BuildRequires: libffi-devel BuildRequires: libtool-ltdl-devel %if %{with ocaml} BuildRequires: ocaml-ocamldoc @@ -64,6 +76,8 @@ Requires: %{name} = %{version}-%{release} Requires: libstdc++-devel >= 3.4 Provides: llvm-static = %{version}-%{release} +Requires(posttrans): /usr/sbin/alternatives +Requires(postun): /usr/sbin/alternatives %description devel This package contains library and header files needed to develop new @@ -207,12 +221,16 @@ HTML documentation for LLVM's OCaml binding. %setup -q -n llvm-%{version} -a1 %{?_with_gcc:-a2} mv clang-%{version} tools/clang +# llvm patches %patch0 -p1 -b .timestamp %patch1 -p0 -b .alignOf +%patch3 -p1 -b .avx + +# clang patches pushd tools/clang %patch2 -p0 -b .alignOf +#patch3 -p1 -b .add_gcc_ver popd -%patch3 -p1 -b .avx # Encoding fix #(cd tools/clang/docs && \ @@ -233,6 +251,7 @@ popd --disable-assertions \ --enable-debug-runtime \ --enable-jit \ + --enable-libffi \ --enable-shared \ --with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \ -maxdepth 0 -type d)/include \ @@ -244,7 +263,7 @@ popd # configure does not properly specify libdir sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config -make %{_smp_mflags} \ +make %{_smp_mflags} REQUIRES_RTTI=1 \ %ifarch ppc OPTIMIZE_OPTION="%{optflags} -fno-var-tracking-assignments" %else @@ -252,17 +271,21 @@ make %{_smp_mflags} \ %endif -%check -# no current unexpected failures. Use || true if they recur to force ignore -make check 2>&1 | tee llvm-testlog.txt -(cd tools/clang && make test 2>&1) | tee clang-testlog.txt - - %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} \ PROJ_docsdir=/moredocs +# multilib fixes +mv %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}} + +pushd %{buildroot}%{_includedir}/llvm/Config +mv config.h config-%{__isa_bits}.h +cp -p %{SOURCE2} config.h +mv llvm-config.h llvm-config-%{__isa_bits}.h +cp -p %{SOURCE3} llvm-config.h +popd + # Create ld.so.conf.d entry mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF @@ -312,7 +335,7 @@ rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.* # FIXME file this bug sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \ - %{buildroot}%{_bindir}/llvm-config + %{buildroot}%{_bindir}/llvm-config-%{__isa_bits} chmod -x %{buildroot}%{_libdir}/%{name}/*.a @@ -321,6 +344,11 @@ chmod -x %{buildroot}%{_libdir}/%{name}/*.a find examples -name 'Makefile' | xargs -0r rm -f +%check +make check +(cd tools/clang && make test) + + %post libs -p /sbin/ldconfig %post -n clang -p /sbin/ldconfig @@ -329,13 +357,32 @@ find examples -name 'Makefile' | xargs -0r rm -f %postun -n clang -p /sbin/ldconfig +%posttrans devel +# link llvm-config to the platform-specific file; +# use ISA bits as priority so that 64-bit is preferred +# over 32-bit if both are installed +alternatives \ + --install \ + %{_bindir}/llvm-config \ + llvm-config \ + %{_bindir}/llvm-config-%{__isa_bits} \ + %{__isa_bits} + +%postun devel +if [ $1 -eq 0 ]; then + alternatives --remove llvm-config \ + %{_bindir}/llvm-config-%{__isa_bits} +fi +exit 0 + + %files %defattr(-,root,root,-) %doc CREDITS.TXT LICENSE.TXT README.txt %{_bindir}/bugpoint %{_bindir}/llc %{_bindir}/lli -%exclude %{_bindir}/llvm-config +%exclude %{_bindir}/llvm-config-%{__isa_bits} %{_bindir}/llvm* %{_bindir}/opt %exclude %{_mandir}/man1/clang.1.* @@ -344,7 +391,7 @@ find examples -name 'Makefile' | xargs -0r rm -f %files devel %defattr(-,root,root,-) -%{_bindir}/llvm-config +%{_bindir}/llvm-config-%{__isa_bits} %{_includedir}/%{name} %{_includedir}/%{name}-c %{_libdir}/%{name}/*.a @@ -414,6 +461,11 @@ find examples -name 'Makefile' | xargs -0r rm -f %changelog +* Tue Aug 2 2011 Michel Salim - 2.8-12 +- Depend on libffi to allow the LLVM interpreter to call external functions +- Build with RTTI enabled, needed by e.g. Rubinius (# 722714) +- Fix multilib installation + * Tue Apr 26 2011 Adam Jackson 2.8-11 - llvm-2.8-disable-avx.patch: Disable AVX code generation. (#699896) From 66fa449574d647a9d9413ea421503015cd919aa9 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Tue, 2 Aug 2011 00:03:34 +0200 Subject: [PATCH 24/39] Fix incorrect platform-specific include path on i686 --- llvm.spec | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/llvm.spec b/llvm.spec index ec62c8e..44cdb5e 100644 --- a/llvm.spec +++ b/llvm.spec @@ -255,9 +255,11 @@ popd --enable-shared \ --with-c-include-dirs=%{_includedir}:$(find %{_prefix}/lib/gcc/*/* \ -maxdepth 0 -type d)/include \ +%if %{__isa_bits} == 64 + --with-cxx-include-32bit-dir=32 \ +%endif --with-cxx-include-root=$(find %{_includedir}/c++/* -maxdepth 0 -type d) \ - --with-cxx-include-arch=%{_arch}-%{_vendor}-%{_os} \ - --with-cxx-include-32bit-dir=32 + --with-cxx-include-arch=%{_target_cpu}-%{_vendor}-%{_os} \ # FIXME file this # configure does not properly specify libdir @@ -345,8 +347,10 @@ find examples -name 'Makefile' | xargs -0r rm -f %check -make check -(cd tools/clang && make test) +# the Koji build server does not seem to have enough RAM +# for the default 16 threads +make check LIT_ARGS="-s -v -j8" +make -C tools/clang/test %post libs -p /sbin/ldconfig @@ -464,7 +468,8 @@ exit 0 * Tue Aug 2 2011 Michel Salim - 2.8-12 - Depend on libffi to allow the LLVM interpreter to call external functions - Build with RTTI enabled, needed by e.g. Rubinius (# 722714) -- Fix multilib installation +- Fix multilib installation (# 699416) +- Fix incorrect platform-specific include path on i686 * Tue Apr 26 2011 Adam Jackson 2.8-11 - llvm-2.8-disable-avx.patch: Disable AVX code generation. (#699896) From eaf6624384e1dac8072673983c1f4b2d9da71c12 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Tue, 2 Aug 2011 16:58:57 +0200 Subject: [PATCH 25/39] - Disable AVX tests, else they fail since AVX is now disabled - Remove clang 2.9 patch retrieved when cherry-picking F-16/Rawhide commit --- clang-2.9-add_gcc_vers.patch | 12 ------------ llvm.spec | 8 +++----- 2 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 clang-2.9-add_gcc_vers.patch diff --git a/clang-2.9-add_gcc_vers.patch b/clang-2.9-add_gcc_vers.patch deleted file mode 100644 index 03afe49..0000000 --- a/clang-2.9-add_gcc_vers.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- clang-2.9/lib/Driver/ToolChains.cpp.add_gcc_vers 2011-03-21 22:29:27.000000000 +0100 -+++ clang-2.9/lib/Driver/ToolChains.cpp 2011-08-01 18:20:29.504194241 +0200 -@@ -1449,7 +1449,8 @@ - GccTriple = "i586-suse-linux"; - } - -- const char* GccVersions[] = {"4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", -+ const char* GccVersions[] = {"4.6.1", "4.6.0", -+ "4.5.2", "4.5.1", "4.5", "4.4.5", "4.4.4", - "4.4.3", "4.4", "4.3.4", "4.3.3", "4.3.2", - "4.3", "4.2.4", "4.2.3", "4.2.2", "4.2.1", - "4.2"}; diff --git a/llvm.spec b/llvm.spec index 44cdb5e..c1a91f2 100644 --- a/llvm.spec +++ b/llvm.spec @@ -34,10 +34,6 @@ Patch2: clang-2.8-alignOf.patch # http://llvm.org/bugs/show_bug.cgi?id=9508 Patch3: llvm-2.8-disable-avx.patch -# clang link failure if system GCC version is unknown -# http://llvm.org/bugs/show_bug.cgi?id=8897 -# Patch4: clang-2.9-add_gcc_vers.patch - BuildRequires: bison BuildRequires: chrpath @@ -229,9 +225,11 @@ mv clang-%{version} tools/clang # clang patches pushd tools/clang %patch2 -p0 -b .alignOf -#patch3 -p1 -b .add_gcc_ver popd +# Also disable AVX tests +rm test/CodeGen/X86/avx*.ll + # Encoding fix #(cd tools/clang/docs && \ # iconv -f ISO88591 -t UTF8 BlockImplementation.txt \ From 12ed1815984cdaf945048d6f78337b625abd7f9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 11 Oct 2011 14:21:13 +0200 Subject: [PATCH 26/39] don't fail the build on failing tests on s390(x) --- llvm.spec | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/llvm.spec b/llvm.spec index c1a91f2..26eb487 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 12%{?dist} +Release: 13%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -347,8 +347,19 @@ find examples -name 'Makefile' | xargs -0r rm -f %check # the Koji build server does not seem to have enough RAM # for the default 16 threads -make check LIT_ARGS="-s -v -j8" -make -C tools/clang/test +make check LIT_ARGS="-s -v -j8" \ +%ifarch s390 s390x + || : +%else + %{nil} +%endif + +make -C tools/clang/test \ +%ifarch s390 s390x + || : +%else + %{nil} +%endif %post libs -p /sbin/ldconfig @@ -463,6 +474,9 @@ exit 0 %changelog +* Tue Oct 11 2011 Dan Horák - 2.8-13 +- don't fail the build on failing tests on s390(x) + * Tue Aug 2 2011 Michel Salim - 2.8-12 - Depend on libffi to allow the LLVM interpreter to call external functions - Build with RTTI enabled, needed by e.g. Rubinius (# 722714) From bd716bccdc1287f541c7f51b48448180b030bb6f Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Wed, 3 Aug 2011 11:34:38 +0200 Subject: [PATCH 27/39] Add runtime dependency of -devel on libffi-devel --- llvm.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 26eb487..f279884 100644 --- a/llvm.spec +++ b/llvm.spec @@ -12,7 +12,7 @@ Name: llvm Version: 2.8 -Release: 13%{?dist} +Release: 14%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -69,6 +69,7 @@ functionality. Summary: Libraries and header files for LLVM Group: Development/Languages Requires: %{name} = %{version}-%{release} +Requires: libffi-devel Requires: libstdc++-devel >= 3.4 Provides: llvm-static = %{version}-%{release} @@ -474,6 +475,9 @@ exit 0 %changelog +* Sat Nov 12 2011 Michel Salim - 2.8-14 +- Add runtime dependency of -devel on libffi-devel + * Tue Oct 11 2011 Dan Horák - 2.8-13 - don't fail the build on failing tests on s390(x) From 0e564cfed8bfce6adb4becdd73483295d5e4ee64 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Mon, 20 Jan 2014 20:59:36 -0700 Subject: [PATCH 28/39] Enabling building on el6 --- llvm.spec | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/llvm.spec b/llvm.spec index f088013..7ff6279 100644 --- a/llvm.spec +++ b/llvm.spec @@ -11,16 +11,23 @@ %else %bcond_with ocaml %endif -%ifarch %ix86 x86_64 - %bcond_without gold -%else - %bcond_with gold -%endif -# ppc64 fails to build lldb upstream -%ifnarch ppc ppc64 - %bcond_without lldb -%else - %bcond_with lldb +# If build on Fedora or RHEL 7 +%if 0%{?rhel}%{?fedora} >= 7 + # gold not available on RHEL 6 + %ifarch %ix86 x86_64 + %bcond_without gold + %else + %bcond_with gold + %endif + # lldb requires gcc 4.6 or higher + # ppc64 fails to build lldb upstream + %ifnarch ppc ppc64 + %bcond_without lldb + %else + %bcond_with lldb + %endif + # gcc 4.4 doesn't understand c++11 (wants c++0x) + %bcond_without cxx11 %endif @@ -36,7 +43,7 @@ Name: llvm Version: 3.4 -Release: 3%{?dist} +Release: 4%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -298,7 +305,9 @@ export CXX=c++ --libdir=%{_libdir}/%{name} \ --disable-polly \ --disable-libcpp \ +%if %{with cxx11} --enable-cxx11 \ +%endif --enable-clang-arcmt \ --enable-clang-static-analyzer \ --enable-clang-rewriter \ @@ -649,6 +658,9 @@ exit 0 %endif %changelog +* Sat Jan 18 2014 Dave Johansen 3.4-4 +- Enable building on EL6 + * Fri Jan 17 2014 Dave Airlie 3.4-3 - bump nvr for lldb on ppc disable From 8f002ea29affd3c31876d387a7972073b93abc8a Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Wed, 29 Jan 2014 19:36:33 -0700 Subject: [PATCH 29/39] Obsoleting pure on EL6 --- llvm.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index 7ff6279..a307818 100644 --- a/llvm.spec +++ b/llvm.spec @@ -28,6 +28,10 @@ %endif # gcc 4.4 doesn't understand c++11 (wants c++0x) %bcond_without cxx11 +%else +# pure 0.55 doesn't work with newer versions of llvm and 0.58 doesn't work with old libstdc++ +# See https://bugzilla.redhat.com/show_bug.cgi?id=1058472 +Obsoletes: pure <= 0.55 %endif @@ -43,7 +47,7 @@ Name: llvm Version: 3.4 -Release: 4%{?dist} +Release: 5%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -658,6 +662,9 @@ exit 0 %endif %changelog +* Wed Jan 29 2014 Dave Johansen 3.4-5 +- Obsoleting pure on EL6 + * Sat Jan 18 2014 Dave Johansen 3.4-4 - Enable building on EL6 From 4a47cafc5a408135c253aae17de82e987b75d6cf Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Mon, 3 Feb 2014 19:26:56 -0700 Subject: [PATCH 30/39] Removing specification of --with-c-include-dirs --- llvm.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm.spec b/llvm.spec index a307818..ba660e6 100644 --- a/llvm.spec +++ b/llvm.spec @@ -47,7 +47,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: 3.4 -Release: 5%{?dist} +Release: 6%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -359,7 +359,6 @@ export CXX=c++ %if %{with gold} --with-binutils-include=%{_includedir} \ %endif - --with-c-include-dirs=%{_includedir}:$(echo %{_prefix}/lib/gcc/%{_target_cpu}*/*/include) \ --with-optimize-option=-O3 make %{_smp_mflags} REQUIRES_RTTI=1 VERBOSE=1 \ @@ -662,6 +661,9 @@ exit 0 %endif %changelog +* Mon Feb 03 2014 Dave Johansen 3.4-6 +- Removing specification of --with-c-include-dirs + * Wed Jan 29 2014 Dave Johansen 3.4-5 - Obsoleting pure on EL6 From 5b96b3dfff9ec6beaaa7d4fa7ee17a79cd58214c Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Tue, 4 Feb 2014 19:22:48 -0700 Subject: [PATCH 31/39] Adding include path for ffi.h --- llvm.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/llvm.spec b/llvm.spec index ba660e6..e392a48 100644 --- a/llvm.spec +++ b/llvm.spec @@ -47,7 +47,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: 3.4 -Release: 6%{?dist} +Release: 7%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -305,6 +305,10 @@ sed -i 's|/lib\>|/%{_lib}/%{name}|g' tools/llvm-config/llvm-config.cpp # clang is lovely and all, but fedora builds with gcc export CC=gcc export CXX=c++ +# Add include path for ffi.h +export CPPFLAGS=-I$(echo %{_libdir}/libffi-*/include) +export CFLAGS="$RPM_OPT_FLAGS $CPPFLAGS" +export CXXFLAGS="$RPM_OPT_FLAGS $CPPFLAGS" %configure \ --libdir=%{_libdir}/%{name} \ --disable-polly \ @@ -661,6 +665,9 @@ exit 0 %endif %changelog +* Tue Feb 04 2014 Dave Johansen 3.4-7 +- Adding include path for ffi.h + * Mon Feb 03 2014 Dave Johansen 3.4-6 - Removing specification of --with-c-include-dirs From c5d6b65dba303981893b9f0079426b4c880a1acd Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Tue, 4 Feb 2014 19:26:28 -0700 Subject: [PATCH 32/39] Merging in the change from release for in master Doesn't actually change anything since lldb requires gcc 4.6 and is disabled on EL6 --- llvm.spec | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/llvm.spec b/llvm.spec index e392a48..e9e3ce1 100644 --- a/llvm.spec +++ b/llvm.spec @@ -20,8 +20,8 @@ %bcond_with gold %endif # lldb requires gcc 4.6 or higher - # ppc64 fails to build lldb upstream - %ifnarch ppc ppc64 + # lldb not ported to anything but x86 so far. + %ifarch x86_64 %{ix86} %bcond_without lldb %else %bcond_with lldb @@ -47,7 +47,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: 3.4 -Release: 7%{?dist} +Release: 8%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -665,18 +665,22 @@ exit 0 %endif %changelog -* Tue Feb 04 2014 Dave Johansen 3.4-7 +* Tue Feb 04 2014 Dave Johansen 3.4-8 - Adding include path for ffi.h -* Mon Feb 03 2014 Dave Johansen 3.4-6 +* Mon Feb 03 2014 Dave Johansen 3.4-7 - Removing specification of --with-c-include-dirs -* Wed Jan 29 2014 Dave Johansen 3.4-5 +* Wed Jan 29 2014 Dave Johansen 3.4-6 - Obsoleting pure on EL6 -* Sat Jan 18 2014 Dave Johansen 3.4-4 +* Sat Jan 18 2014 Dave Johansen 3.4-5 - Enable building on EL6 +* Fri Jan 31 2014 Kyle McMartin 3.4-4 +- Disable lldb on everything but x86_64, and i686. It hasn't been ported + beyond those platforms so far. + * Fri Jan 17 2014 Dave Airlie 3.4-3 - bump nvr for lldb on ppc disable From 9815740381d4f83eebee0428b89302ffcbed0651 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Tue, 4 Feb 2014 19:32:24 -0700 Subject: [PATCH 33/39] Putting the changelog into chorological order --- llvm.spec | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/llvm.spec b/llvm.spec index e9e3ce1..ff8a98c 100644 --- a/llvm.spec +++ b/llvm.spec @@ -671,16 +671,16 @@ exit 0 * Mon Feb 03 2014 Dave Johansen 3.4-7 - Removing specification of --with-c-include-dirs -* Wed Jan 29 2014 Dave Johansen 3.4-6 -- Obsoleting pure on EL6 - -* Sat Jan 18 2014 Dave Johansen 3.4-5 -- Enable building on EL6 - -* Fri Jan 31 2014 Kyle McMartin 3.4-4 +* Fri Jan 31 2014 Kyle McMartin 3.4-6 - Disable lldb on everything but x86_64, and i686. It hasn't been ported beyond those platforms so far. +* Wed Jan 29 2014 Dave Johansen 3.4-5 +- Obsoleting pure on EL6 + +* Sat Jan 18 2014 Dave Johansen 3.4-4 +- Enable building on EL6 + * Fri Jan 17 2014 Dave Airlie 3.4-3 - bump nvr for lldb on ppc disable From 2a8df6ee02b5b7257c095dbb1782733dc3d4d98b Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Wed, 5 Feb 2014 20:55:00 -0700 Subject: [PATCH 34/39] Removing specification of targets --- llvm.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/llvm.spec b/llvm.spec index ff8a98c..6073a67 100644 --- a/llvm.spec +++ b/llvm.spec @@ -47,7 +47,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: 3.4 -Release: 8%{?dist} +Release: 9%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -341,8 +341,6 @@ export CXXFLAGS="$RPM_OPT_FLAGS $CPPFLAGS" --disable-embed-stdcxx \ --enable-timestamps \ --enable-backtraces \ - --enable-targets=x86,powerpc,arm,aarch64,cpp,nvptx,systemz \ - --enable-experimental-targets=R600 \ %if %{with ocaml} --enable-bindings=ocaml \ %else @@ -665,6 +663,9 @@ exit 0 %endif %changelog +* Wed Feb 05 2014 Dave Johansen 3.4-9 +- Removing specification of targets + * Tue Feb 04 2014 Dave Johansen 3.4-8 - Adding include path for ffi.h From bea50da69059193db2be5dfa19e37294f1fc16b2 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Wed, 23 Apr 2014 13:40:50 -0700 Subject: [PATCH 35/39] Adding support for Amazon Linux --- 0003-amazon-triples.patch | 22 ++++++++++++++++++++++ llvm.spec | 7 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 0003-amazon-triples.patch diff --git a/0003-amazon-triples.patch b/0003-amazon-triples.patch new file mode 100644 index 0000000..563042f --- /dev/null +++ b/0003-amazon-triples.patch @@ -0,0 +1,22 @@ +--- a/tools/clang/lib/Driver/ToolChains.cpp ++++ b/tools/clang/lib/Driver/ToolChains.cpp +@@ -1124,7 +1124,8 @@ + static const char *const X86_64Triples[] = { + "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu", + "x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux", +- "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux" ++ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux", ++ "x86_64-amazon-linux" + }; + static const char *const X86LibDirs[] = { "/lib32", "/lib" }; + static const char *const X86Triples[] = { +@@ -1131,7 +1132,8 @@ + "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu", "i386-linux-gnu", + "i386-redhat-linux6E", "i686-redhat-linux", "i586-redhat-linux", + "i386-redhat-linux", "i586-suse-linux", "i486-slackware-linux", +- "i686-montavista-linux" ++ "i686-montavista-linux", ++ "i686-amazon-linux" + }; + + static const char *const MIPSLibDirs[] = { "/lib" }; diff --git a/llvm.spec b/llvm.spec index 6073a67..e80d080 100644 --- a/llvm.spec +++ b/llvm.spec @@ -47,7 +47,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: 3.4 -Release: 9%{?dist} +Release: 10%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -69,6 +69,7 @@ Source11: llvm-Config-llvm-config.h # patches Patch1: 0001-data-install-preserve-timestamps.patch Patch2: 0002-linker-flags-speedup-memory.patch +Patch3: 0003-amazon-triples.patch BuildRequires: bison BuildRequires: chrpath @@ -295,6 +296,7 @@ mv lldb-%{version} tools/lldb %patch1 -p1 %patch2 -p1 +%patch3 -p1 # fix library paths sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' ./configure @@ -663,6 +665,9 @@ exit 0 %endif %changelog +* Wed Apr 23 2014 Dave Johansen 3.4-10 +- Adding support for Amazon Linux + * Wed Feb 05 2014 Dave Johansen 3.4-9 - Removing specification of targets From 2336795920bbab3c7c25af0282bb0221801b2e40 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Sun, 3 Aug 2014 20:39:39 -0700 Subject: [PATCH 36/39] Updating to 3.4.2 --- sources | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/sources b/sources index 5ac19b5..a1b210e 100644 --- a/sources +++ b/sources @@ -1,4 +1,2 @@ -b378f1e2c424e03289effc75268d3d2c clang-3.4.src.tar.gz -7ed60a0463f9fdfa20db7109d4624cee lldb-3.4.src.tar.gz -7938353e3a3bda85733a165e7ac4bb84 compiler-rt-3.4.src.tar.gz -46ed668a1ce38985120dbf6344cf6116 llvm-3.4.src.tar.gz +a20669f75967440de949ac3b1bad439c llvm-3.4.2.src.tar.gz +87945973b7c73038871c5f849a818588 cfe-3.4.2.src.tar.gz From a692025584f8dee7fe64af1a4a526020f2ed560b Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Sun, 3 Aug 2014 20:40:17 -0700 Subject: [PATCH 37/39] Forgot to add changes to .spec file --- llvm.spec | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/llvm.spec b/llvm.spec index e80d080..ee273ed 100644 --- a/llvm.spec +++ b/llvm.spec @@ -43,11 +43,13 @@ Obsoletes: pure <= 0.55 %endif #global prerel rc3 +%global version_base 3.4 %global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}} +%global downloadurl_base http://llvm.org/%{?prerel:pre-}releases/%{version_base}%{?prerel:/%{prerel}} Name: llvm -Version: 3.4 -Release: 10%{?dist} +Version: %{version_base}.2 +Release: 1%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -56,10 +58,10 @@ URL: http://llvm.org/ # source archives Source0: %{downloadurl}/llvm-%{version}%{?prerel}.src.tar.gz -Source1: %{downloadurl}/clang-%{version}%{?prerel}.src.tar.gz -Source2: %{downloadurl}/compiler-rt-%{version}%{?prerel}.src.tar.gz +Source1: %{downloadurl}/cfe-%{version}%{?prerel}.src.tar.gz +Source2: %{downloadurl_base}/compiler-rt-%{version_base}%{?prerel}.src.tar.gz %if %{with lldb} -Source3: %{downloadurl}/lldb-%{version}%{?prerel}.src.tar.gz +Source3: %{downloadurl_base}/lldb-%{version_base}%{?prerel}.src.tar.gz %endif # multilib fixes @@ -282,16 +284,16 @@ HTML documentation for LLVM's OCaml binding. %prep -%setup -q %{?with_clang:-a1} %{?with_crt:-a2} %{?with_lldb:-a3} +%setup -q %{?with_clang:-a1} %{?with_crt:-a2} %{?with_lldb:-a3} -n llvm-%{version}.src rm -rf tools/clang tools/lldb projects/compiler-rt %if %{with clang} -mv clang-%{version} tools/clang +mv cfe-%{version}.src tools/clang %endif %if %{with crt} -mv compiler-rt-%{version} projects/compiler-rt +mv compiler-rt-%{version_base} projects/compiler-rt %endif %if %{with lldb} -mv lldb-%{version} tools/lldb +mv lldb-%{version_base} tools/lldb %endif %patch1 -p1 @@ -665,6 +667,9 @@ exit 0 %endif %changelog +* Sun Aug 03 2014 Dave Johansen 3.4.2-1 +- Updated to 3.4.2 + * Wed Apr 23 2014 Dave Johansen 3.4-10 - Adding support for Amazon Linux From f7ecf36d7abd2b7590e67c9f1751203d2320598a Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Sun, 3 Aug 2014 20:45:37 -0700 Subject: [PATCH 38/39] Accidentally removed some sources entries --- sources | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sources b/sources index a1b210e..608dd32 100644 --- a/sources +++ b/sources @@ -1,2 +1,4 @@ -a20669f75967440de949ac3b1bad439c llvm-3.4.2.src.tar.gz 87945973b7c73038871c5f849a818588 cfe-3.4.2.src.tar.gz +7ed60a0463f9fdfa20db7109d4624cee lldb-3.4.src.tar.gz +7938353e3a3bda85733a165e7ac4bb84 compiler-rt-3.4.src.tar.gz +a20669f75967440de949ac3b1bad439c llvm-3.4.2.src.tar.gz From a2f68c838d4428798946a4330ea3c8d3b5713e69 Mon Sep 17 00:00:00 2001 From: Dave Johansen Date: Sat, 15 Nov 2014 07:59:37 -0700 Subject: [PATCH 39/39] Adding support for using devtoolset --- 0004-devtoolset.patch | 17 +++++++++++++++++ llvm.spec | 7 ++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 0004-devtoolset.patch diff --git a/0004-devtoolset.patch b/0004-devtoolset.patch new file mode 100644 index 0000000..1febfe3 --- /dev/null +++ b/0004-devtoolset.patch @@ -0,0 +1,17 @@ +--- a/tools/clang/lib/Driver/ToolChains.cpp 2014-08-27 22:07:31.000000000 +0200 ++++ b/tools/clang/lib/Driver/ToolChains.cpp 2014-09-08 02:51:38.197987523 +0200 +@@ -1249,8 +1249,13 @@ + Prefixes.push_back(D.InstalledDir + "/.."); + + // And finally in /usr. +- if (D.SysRoot.empty()) ++ if (D.SysRoot.empty()) { ++ Prefixes.push_back("/opt/rh/devtoolset-3/root/usr"); ++ Prefixes.push_back("/opt/rh/devtoolset-2/root/usr"); ++ Prefixes.push_back("/opt/rh/devtoolset-1.1/root/usr"); ++ Prefixes.push_back("/opt/rh/devtoolset-1.0/root/usr"); + Prefixes.push_back("/usr"); ++ } + } + + // Loop over the various components which exist and select the best GCC diff --git a/llvm.spec b/llvm.spec index ee273ed..2aea5ce 100644 --- a/llvm.spec +++ b/llvm.spec @@ -49,7 +49,7 @@ Obsoletes: pure <= 0.55 Name: llvm Version: %{version_base}.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: The Low Level Virtual Machine Group: Development/Languages @@ -72,6 +72,7 @@ Source11: llvm-Config-llvm-config.h Patch1: 0001-data-install-preserve-timestamps.patch Patch2: 0002-linker-flags-speedup-memory.patch Patch3: 0003-amazon-triples.patch +Patch4: 0004-devtoolset.patch BuildRequires: bison BuildRequires: chrpath @@ -299,6 +300,7 @@ mv lldb-%{version_base} tools/lldb %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 # fix library paths sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' ./configure @@ -667,6 +669,9 @@ exit 0 %endif %changelog +* Sat Nov 15 2014 Dave Johansen 3.4.2-2 +- Adding support for using devtoolset + * Sun Aug 03 2014 Dave Johansen 3.4.2-1 - Updated to 3.4.2