- Only disable PIC on %ix86; ppc actually needs it

This commit is contained in:
Michel Alexandre Salim 2009-09-09 03:07:26 +00:00
parent 5a5c2aab02
commit 2a2d03da14
4 changed files with 414 additions and 174 deletions

View File

@ -1,11 +0,0 @@
--- llvm-2.4/bindings/ocaml/Makefile.ocaml.ocaml-symlinks 2008-03-10 12:15:32.000000000 -0400
+++ llvm-2.4/bindings/ocaml/Makefile.ocaml 2008-12-02 16:29:01.000000000 -0500
@@ -160,7 +160,7 @@
install-deplibs:
$(Verb) for i in $(DestLibs:$(PROJ_libocamldir)/%=%); do \
- ln -sf "$(PROJ_libdir)/$$i" "$(PROJ_libocamldir)/$$i"; \
+ ln -sf "${OVERRIDE_libdir}/$$i" "$(PROJ_libocamldir)/$$i"; \
done
uninstall-deplibs:

332
llvm-2.5-destdir.patch Normal file
View File

@ -0,0 +1,332 @@
diff -ru llvm-2.5.destdir/docs/CommandGuide/Makefile llvm-2.5/docs/CommandGuide/Makefile
--- llvm-2.5.destdir/docs/CommandGuide/Makefile 2008-06-09 03:14:31.000000000 -0400
+++ llvm-2.5/docs/CommandGuide/Makefile 2009-09-08 21:29:53.054393975 -0400
@@ -71,9 +71,9 @@
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 -ru llvm-2.5.destdir/docs/Makefile llvm-2.5/docs/Makefile
--- llvm-2.5.destdir/docs/Makefile 2008-03-31 13:27:57.000000000 -0400
+++ llvm-2.5/docs/Makefile 2009-09-08 21:29:53.055395770 -0400
@@ -48,11 +48,11 @@
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 @@
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 @@
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 @@
uninstall-local::
$(Echo) Uninstalling Documentation
- $(Verb) $(RM) -rf $(PROJ_docsdir)
+ $(Verb) $(RM) -rf $(DESTDIR)$(PROJ_docsdir)
diff -ru llvm-2.5.destdir/docs/tutorial/Makefile llvm-2.5/docs/tutorial/Makefile
--- llvm-2.5.destdir/docs/tutorial/Makefile 2008-03-30 16:32:18.000000000 -0400
+++ llvm-2.5/docs/tutorial/Makefile 2009-09-08 21:29:53.056390721 -0400
@@ -12,7 +12,7 @@
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 -ru llvm-2.5.destdir/lib/VMCore/Makefile llvm-2.5/lib/VMCore/Makefile
--- llvm-2.5.destdir/lib/VMCore/Makefile 2009-01-09 11:44:42.000000000 -0500
+++ llvm-2.5/lib/VMCore/Makefile 2009-09-08 21:29:53.057389443 -0400
@@ -29,5 +29,5 @@
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 -ru llvm-2.5.destdir/Makefile.config.in llvm-2.5/Makefile.config.in
--- llvm-2.5.destdir/Makefile.config.in 2009-01-09 11:44:42.000000000 -0500
+++ llvm-2.5/Makefile.config.in 2009-09-08 21:29:53.048148959 -0400
@@ -76,14 +76,14 @@
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 -ru llvm-2.5.destdir/Makefile.rules llvm-2.5/Makefile.rules
--- llvm-2.5.destdir/Makefile.rules 2009-02-13 20:07:49.000000000 -0500
+++ llvm-2.5/Makefile.rules 2009-09-08 21:36:45.680391473 -0400
@@ -560,7 +560,7 @@
# 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
@@ -682,22 +682,22 @@
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
@@ -784,7 +784,7 @@
ifdef BYTECODE_DESTINATION
ModuleDestDir := $(BYTECODE_DESTINATION)
else
-ModuleDestDir := $(PROJ_libdir)
+ModuleDestDir := $(DESTDIR)$(PROJ_libdir)
endif
ifdef NO_INSTALL
@@ -864,18 +864,18 @@
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.LA) $(PROJ_libdir)
+$(DestSharedLib): $(LibName.LA) $(DESTDIR)$(PROJ_libdir)
$(Echo) Installing $(BuildMode) Shared Library $(DestSharedLib)
$(Verb) $(LTInstall) $(LibName.LA) $(DestSharedLib)
$(Verb) $(LIBTOOL) --finish $(PROJ_libdir)
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
@@ -920,7 +920,7 @@
ifdef BYTECODE_DESTINATION
BytecodeDestDir := $(BYTECODE_DESTINATION)
else
-BytecodeDestDir := $(PROJ_libdir)
+BytecodeDestDir := $(DESTDIR)$(PROJ_libdir)
endif
DestBytecodeLib = $(BytecodeDestDir)/lib$(LIBRARYNAME).a
@@ -978,11 +978,11 @@
uninstall-local::
$(Echo) Uninstall circumvented with NO_INSTALL
else
-DestRelinkedLib = $(PROJ_libdir)/$(LIBRARYNAME).o
+DestRelinkedLib = $(DESTDIR)$(PROJ_libdir)/$(LIBRARYNAME).o
install-local:: $(DestRelinkedLib)
-$(DestRelinkedLib): $(LibName.O) $(PROJ_libdir)
+$(DestRelinkedLib): $(LibName.O) $(DESTDIR)$(PROJ_libdir)
$(Echo) Installing $(BuildMode) Object Library $(DestRelinkedLib)
$(Verb) $(LTInstall) $(LibName.O) $(DestRelinkedLib)
@@ -1018,13 +1018,13 @@
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) $(LTInstall) $(LibName.A) $(DestArchiveLib)
uninstall-local::
@@ -1080,11 +1080,11 @@
uninstall-local::
$(Echo) Uninstall circumvented with NO_INSTALL
else
-DestTool = $(PROJ_bindir)/$(TOOLNAME)
+DestTool = $(DESTDIR)$(PROJ_bindir)/$(TOOLNAME)
install-local:: $(DestTool)
-$(DestTool): $(ToolBuildPath) $(PROJ_bindir)
+$(DestTool): $(ToolBuildPath) $(DESTDIR)$(PROJ_bindir)
$(Echo) Installing $(BuildMode) $(DestTool)
$(Verb) $(ProgInstall) $(ToolBuildPath) $(DestTool)
@@ -1652,25 +1652,25 @@
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
@@ -1682,10 +1682,10 @@
$(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 -ru llvm-2.5.destdir/tools/gccas/Makefile llvm-2.5/tools/gccas/Makefile
--- llvm-2.5.destdir/tools/gccas/Makefile 2007-12-29 15:07:17.000000000 -0500
+++ llvm-2.5/tools/gccas/Makefile 2009-09-08 21:29:53.058390400 -0400
@@ -10,9 +10,9 @@
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 -ru llvm-2.5.destdir/tools/gccld/Makefile llvm-2.5/tools/gccld/Makefile
--- llvm-2.5.destdir/tools/gccld/Makefile 2007-12-29 15:07:17.000000000 -0500
+++ llvm-2.5/tools/gccld/Makefile 2009-09-08 21:29:53.059390658 -0400
@@ -11,9 +11,9 @@
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 -ru llvm-2.5.destdir/tools/llvm-config/Makefile llvm-2.5/tools/llvm-config/Makefile
--- llvm-2.5.destdir/tools/llvm-config/Makefile 2007-12-29 15:07:17.000000000 -0500
+++ llvm-2.5/tools/llvm-config/Makefile 2009-09-08 21:29:53.060389870 -0400
@@ -82,6 +82,6 @@
$(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)

View File

@ -0,0 +1,11 @@
--- 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)`

234
llvm.spec
View File

@ -2,11 +2,6 @@
# #
# --with doxygen # --with doxygen
# The doxygen docs are HUGE, so they are not built by default. # The doxygen docs are HUGE, so they are not built by default.
#
# --with gcc
# The llvm-gcc package doesn't currently build.
%define lgcc_version 4.2
# LLVM object files don't contain build IDs. I don't know why yet. # LLVM object files don't contain build IDs. I don't know why yet.
# Suppress their generation for now. # Suppress their generation for now.
@ -15,20 +10,21 @@
Name: llvm Name: llvm
Version: 2.5 Version: 2.5
Release: 5%{?dist} Release: 7%{?dist}
Summary: The Low Level Virtual Machine Summary: The Low Level Virtual Machine
Group: Development/Languages Group: Development/Languages
License: NCSA License: NCSA
URL: http://llvm.org/ URL: http://llvm.org/
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tar.gz Source0: http://llvm.org/prereleases/%{version}/llvm-%{version}.tar.gz
%if %{?_with_gcc:1}%{!?_with_gcc:0}
Source1: http://llvm.org/releases/%{version}/llvm-gcc-%{lgcc_version}-%{version}.source.tar.gz
%endif
Patch0: llvm-2.1-fix-sed.patch Patch0: llvm-2.1-fix-sed.patch
Patch1: llvm-2.4-fix-ocaml.patch # http://llvm.org/bugs/show_bug.cgi?id=3153
# backported from 2.6 patch
Patch1: llvm-2.5-destdir.patch
# http://llvm.org/bugs/show_bug.cgi?id=3726 # http://llvm.org/bugs/show_bug.cgi?id=3726
Patch2: llvm-2.5-gcc44.patch Patch2: llvm-2.5-gcc44.patch
# http://llvm.org/bugs/show_bug.cgi?id=4911
Patch3: llvm-2.5-tclsh_check.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@ -39,6 +35,8 @@ BuildRequires: gcc-c++ >= 3.4
BuildRequires: groff BuildRequires: groff
BuildRequires: libtool-ltdl-devel BuildRequires: libtool-ltdl-devel
BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-ocamldoc
# for DejaGNU test suite
BuildRequires: dejagnu tcl-devel python
%if %{?_with_doxygen:1}%{!?_with_doxygen:0} %if %{?_with_doxygen:1}%{!?_with_doxygen:0}
BuildRequires: doxygen graphviz BuildRequires: doxygen graphviz
%endif %endif
@ -54,11 +52,6 @@ arbitrary programming languages. The compiler infrastructure includes
mirror sets of programming tools as well as libraries with equivalent mirror sets of programming tools as well as libraries with equivalent
functionality. functionality.
%if %{?_with_gcc:1}%{!?_with_gcc:0}
It currently supports compilation of C and C++ programs, using front
ends derived from GCC %{lgcc_version}.
%endif
%package devel %package devel
Summary: Libraries and header files for LLVM Summary: Libraries and header files for LLVM
@ -81,32 +74,6 @@ Requires: %{name} = %{version}-%{release}
Documentation for the LLVM compiler infrastructure. Documentation for the LLVM compiler infrastructure.
%if %{?_with_gcc:1}%{!?_with_gcc:0}
%package gcc
Summary: C compiler for LLVM
License: GPL+
Group: Development/Languages
Requires: %{name} = %{version}-%{release}
%description gcc
C compiler for LLVM.
%package gcc-c++
Summary: C++ compiler for LLVM
License: GPL+
Group: Development/Languages
Requires: %{name}-gcc = %{version}-%{release}
%description gcc-c++
C++ compiler for LLVM.
%endif
%if %{?_with_doxygen:1}%{!?_with_doxygen:0} %if %{?_with_doxygen:1}%{!?_with_doxygen:0}
%package apidoc %package apidoc
Summary: API documentation for LLVM Summary: API documentation for LLVM
@ -140,122 +107,82 @@ The %{name}-ocaml-devel package contains libraries and signature files
for developing applications that use %{name}-ocaml. for developing applications that use %{name}-ocaml.
%prep %package ocaml-doc
%setup -q -n llvm-%{version} %{?_with_gcc:-a1} Summary: Documentation for LLVM's OCaml binding
Group: Documentation
Requires: %{name}-ocaml = %{version}-%{release}
%description ocaml-doc
HTML documentation for LLVM's OCaml binding.
%prep
%setup -q
%patch0 -p1 -b .fix-sed %patch0 -p1 -b .fix-sed
%patch1 -p1 -b .fix-ocaml %patch1 -p1 -b .destdir
%patch2 -p1 -b .gcc44 %patch2 -p1 -b .gcc44
%patch3 -p1 -b .tclsh_check
%build %build
# Note: --enable-pic can be turned off when 2.6 comes out # Disabling assertions now, rec. by pure and needed for OpenGTL
# and up to 2.5, unsafe on 32-bit archs (in our case, # no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3239
# anything but x86_64) mkdir obj && cd obj
%configure \ ../configure \
--prefix=%{_prefix} \
--libdir=%{_libdir}/%{name} \ --libdir=%{_libdir}/%{name} \
--datadir=%{_datadir}/%{name}-%{version} \ --disable-assertions \
--disable-static \
--enable-assertions \
--enable-debug-runtime \ --enable-debug-runtime \
--enable-jit \ --enable-jit \
--enable-optimized \ %ifnarch %{ix86}
%ifnarch %ix86 --enable-pic=yes
--enable-pic
%endif %endif
# --enable-targets=host-only \
# FIXME file this
# configure does not properly specify libdir
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
make %{_smp_mflags} OPTIMIZE_OPTION='%{optflags}' make %{_smp_mflags} OPTIMIZE_OPTION='%{optflags}'
# tools-only VERBOSE=1 OmitFramePointer='' REQUIRES_EH=1 \
# OPTIMIZE_OPTION='%{optflags}'
%if %{?_with_gcc:1}%{!?_with_gcc:0}
# Build llvm-gcc.
export PATH=%{_builddir}/%{?buildsubdir}/Release/bin:$PATH %check
(cd obj && make check) 2>&1 | tee testlog.txt || true
mkdir llvm-gcc%{lgcc_version}-%{version}.source/build
cd llvm-gcc%{lgcc_version}-%{version}.source/build
../configure \
--host=%{_host} \
--build=%{_build} \
--target=%{_target_platform} \
--prefix=%{_libdir}/llvm-gcc \
--libdir=%{_libdir}/llvm-gcc/%{_lib} \
--enable-threads \
--disable-nls \
%ifarch x86_64
--disable-multilib \
--disable-shared \
%endif
--enable-languages=c,c++ \
--enable-llvm=%{_builddir}/%{?buildsubdir} \
--program-prefix=llvm-
make %{_smp_mflags} LLVM_VERSION_INFO=%{version}
%endif
%install %install
rm -rf %{buildroot} rm -rf %{buildroot}
cd obj
chmod -x examples/Makefile chmod -x examples/Makefile
# OVERRIDE_libdir used by our patched Makefile.ocaml:
# see http://llvm.org/bugs/show_bug.cgi?id=3153
make install DESTDIR=%{buildroot} \
PROJ_libdir=%{buildroot}/%{_libdir}/%{name} \
OVERRIDE_libdir=%{_libdir}/%{name}/%{name} \
PROJ_docsdir=`pwd`/moredocs
#make install \ make install DESTDIR=%{buildroot} \
# PROJ_prefix=%{buildroot}/%{_prefix} \ PROJ_docsdir=/moredocs
# PROJ_bindir=%{buildroot}/%{_bindir} \
# PROJ_libdir=%{buildroot}/%{_libdir}/%{name} \ # Move documentation back to build directory
# PROJ_datadir=%{buildroot}/%{_datadir} \ #
# PROJ_docsdir=%{buildroot}/%{_docdir}/%{name}-%{version} \ mv %{buildroot}/moredocs ../
# PROJ_etcdir=%{buildroot}/%{_datadir}/%{name}-%{version} \ rm ../moredocs/*.tar.gz
# PROJ_includedir=%{buildroot}/%{_includedir} \ rm ../moredocs/ocamldoc/html/*.tar.gz
# PROJ_infodir=%{buildroot}/%{_infodir} \
# PROJ_mandir=%{buildroot}/%{_mandir}
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}/%{_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
# Get rid of erroneously installed example files. # Get rid of erroneously installed example files.
rm %{buildroot}%{_libdir}/%{name}/LLVMHello.* rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
# And OCaml .o files
rm %{buildroot}%{_libdir}/ocaml/*.o
# Use relative links for ocaml's libLLVM*.a
#(cd %{buildroot}%{_libdir}/ocaml && for i in libLLVM*.a; do
# ln -sf %{_libdir}/llvm/$i $i;
# done)
# Remove deprecated tools. # Remove deprecated tools.
rm %{buildroot}%{_bindir}/gcc{as,ld} rm %{buildroot}%{_bindir}/gcc{as,ld}
# FIXME file this bug
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \ sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
%{buildroot}%{_bindir}/llvm-config %{buildroot}%{_bindir}/llvm-config
chmod -x %{buildroot}%{_libdir}/%{name}/*.[oa] chmod -x %{buildroot}%{_libdir}/%{name}/*.a
# remove documentation makefiles: # remove documentation makefiles:
# they require the build directory to work # they require the build directory to work
find examples -name 'Makefile' find examples -name 'Makefile' | xargs -0r rm -f
%if %{?_with_gcc:1}%{!?_with_gcc:0}
# Install llvm-gcc.
make -C llvm-gcc%{lgcc_version}-%{version}.source/build install DESTDIR=%{buildroot}
cd %{buildroot}%{_libdir}/llvm-gcc/%{_lib}
find . -name '*.la' -print0 | xargs -0r rm
find . -name '*.a' -exec %{buildroot}%{_bindir}/llvm-ranlib {} \;
cd ../bin
ln llvm-c++ llvm-gcc llvm-g++ %{buildroot}%{_bindir}
rm llvm-cpp llvm-gccbug llvm-gcov %{_target_platform}-gcc*
cd ..
mv man/man1/llvm-gcc.1 man/man1/llvm-g++.1 %{buildroot}%{_mandir}/man1
rm -r info man %{_lib}/libiberty.a
rm -r libexec/gcc/%{_target_platform}/%{lgcc_version}/install-tools
rm -r %{_lib}/gcc/%{_target_platform}/%{lgcc_version}/install-tools
%endif
%clean %clean
@ -286,7 +213,6 @@ rm -rf %{buildroot}
%exclude %{_mandir}/man1/llvm-gcc.* %exclude %{_mandir}/man1/llvm-gcc.*
%endif %endif
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%{_bindir}/llvm-config %{_bindir}/llvm-config
@ -294,6 +220,9 @@ rm -rf %{buildroot}
%{_includedir}/%{name}-c %{_includedir}/%{name}-c
%{_libdir}/%{name} %{_libdir}/%{name}
%files doc
%defattr(-,root,root,-)
%doc examples moredocs/html
%files ocaml %files ocaml
%defattr(-,root,root,-) %defattr(-,root,root,-)
@ -306,10 +235,9 @@ rm -rf %{buildroot}
%{_libdir}/ocaml/*.cmx* %{_libdir}/ocaml/*.cmx*
%{_libdir}/ocaml/*.mli %{_libdir}/ocaml/*.mli
%files doc %files ocaml-doc
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc docs/*.{html,css} docs/img examples moredocs/* %doc moredocs/ocamldoc/html/*
%if %{?_with_doxygen:1}%{!?_with_doxygen:0} %if %{?_with_doxygen:1}%{!?_with_doxygen:0}
%files apidoc %files apidoc
@ -318,40 +246,16 @@ rm -rf %{buildroot}
%endif %endif
%if %{?_with_gcc:1}%{!?_with_gcc:0}
%files gcc
%defattr(-,root,root,-)
%{_bindir}/llvm-gcc
%dir %{_libdir}/llvm-gcc
%dir %{_libdir}/llvm-gcc/bin
%dir %{_libdir}/llvm-gcc/include
%dir %{_libdir}/llvm-gcc/%{_lib}
%dir %{_libdir}/llvm-gcc/libexec
%dir %{_libdir}/llvm-gcc/libexec/gcc
%dir %{_libdir}/llvm-gcc/libexec/gcc/%{_target_platform}/%{lgcc_version}
%{_libdir}/llvm-gcc/%{_lib}/gcc
%{_libdir}/llvm-gcc/%{_lib}/libmudflap*.a
%{_libdir}/llvm-gcc/bin/%{_target_platform}-llvm-gcc
%{_libdir}/llvm-gcc/bin/llvm-gcc
%{_libdir}/llvm-gcc/include/mf-runtime.h
%{_libdir}/llvm-gcc/libexec/gcc/%{_target_platform}/%{lgcc_version}/cc1
%{_libdir}/llvm-gcc/libexec/gcc/%{_target_platform}/%{lgcc_version}/collect2
%doc %{_mandir}/man1/llvm-gcc.*
%files gcc-c++
%defattr(-,root,root,-)
%{_bindir}/llvm-[cg]++
%{_libdir}/llvm-gcc/%{_lib}/lib*++.a
%{_libdir}/llvm-gcc/bin/%{_target_platform}-llvm-[cg]++
%{_libdir}/llvm-gcc/bin/llvm-[cg]++
%{_libdir}/llvm-gcc/include/c++
%{_libdir}/llvm-gcc/libexec/gcc/%{_target_platform}/%{lgcc_version}/cc1plus
%doc %{_mandir}/man1/llvm-g++.*
%endif
%changelog %changelog
* Tue Sep 8 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-7
- Backport destdir patch from 2.6
* Sat Sep 5 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-6
- Disable assertions (needed by OpenGTL)
- Align spec file with upstream build instructions
- Enable unit tests
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5 * Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5
- Only disable PIC on %%ix86; ppc actually needs it - Only disable PIC on %%ix86; ppc actually needs it
@ -359,10 +263,14 @@ rm -rf %{buildroot}
- Disable use of position-independent code on 32-bit platforms - Disable use of position-independent code on 32-bit platforms
(buggy in LLVM <= 2.5) (buggy in LLVM <= 2.5)
* Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.4-4 * Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-2
- Remove build scripts; they require the build directory to work - Remove build scripts; they require the build directory to work
* Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.4-3 * Wed Mar 4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-1
- Update to 2.5
- Package build scripts (bug #457881) - Package build scripts (bug #457881)
* Tue Dec 2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-2 * Tue Dec 2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-2