[OpenGTL] shared llvm patch
Rex Dieter
rdieter at fedoraproject.org
Sat Nov 5 10:47:45 UTC 2011
commit 6174ac7ffe115d3575c68213af71b1df888c98d5
Author: Rex Dieter <rdieter at fedoraproject.org>
Date: Sat Nov 5 05:55:17 2011 -0500
shared llvm patch
OpenGTL-0.9.15.1-shared_llvm.patch | 75 ++++++++++++++++++++++++++++++++++++
OpenGTL.spec | 20 ++++++----
2 files changed, 87 insertions(+), 8 deletions(-)
---
diff --git a/OpenGTL-0.9.15.1-shared_llvm.patch b/OpenGTL-0.9.15.1-shared_llvm.patch
new file mode 100644
index 0000000..e7a781f
--- /dev/null
+++ b/OpenGTL-0.9.15.1-shared_llvm.patch
@@ -0,0 +1,75 @@
+diff -ur OpenGTL-0.9.15.1/cmake/modules/FindLLVM.cmake OpenGTL-0.9.15.1-shared-llvm/cmake/modules/FindLLVM.cmake
+--- OpenGTL-0.9.15.1/cmake/modules/FindLLVM.cmake 2011-04-10 11:03:22.000000000 +0200
++++ OpenGTL-0.9.15.1-shared-llvm/cmake/modules/FindLLVM.cmake 2011-10-10 22:11:13.000000000 +0200
+@@ -33,29 +33,30 @@
+ /opt/local/bin
+ )
+
+- MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR)
+- exec_program( perl ARGS ${LLVM_CONFIG_EXECUTABLE} --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} )
+- STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}})
+- SEPARATE_ARGUMENTS(${OBJECT_VAR})
+- STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}})
+- ENDMACRO(FIND_LLVM_LIBS)
+-
++ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_VERSION )
+
+ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR )
+ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR )
+
++ find_library(LLVM_SHARED_LIB NAMES LLVM-${LLVM_VERSION} PATHS ${LLVM_LIB_DIR})
+
+ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS )
+
+ STRING(REGEX MATCH "PIC" LLVM_COMPILE_FLAGS_PIC ${LLVM_COMPILE_FLAGS} )
+ STRING(REGEX MATCH "NDEBUG" LLVM_COMPILE_FLAGS_NDEBUG ${LLVM_COMPILE_FLAGS} )
+
+- if(LLVM_COMPILE_FLAGS_PIC)
+- message(STATUS "llvm was compiled with pic")
++ if(LLVM_SHARED_LIB)
++ message(STATUS "llvm was compiled as a shared library")
++ # assume the shared library is PIC, otherwise the build is very broken
+ set(LLVM_COMPILED_WITH_PIC TRUE)
+- else(LLVM_COMPILE_FLAGS_PIC)
+- set(LLVM_COMPILED_WITH_PIC FALSE)
+- endif(LLVM_COMPILE_FLAGS_PIC)
++ else(LLVM_SHARED_LIB)
++ if(LLVM_COMPILE_FLAGS_PIC)
++ message(STATUS "llvm was compiled with pic")
++ set(LLVM_COMPILED_WITH_PIC TRUE)
++ else(LLVM_COMPILE_FLAGS_PIC)
++ set(LLVM_COMPILED_WITH_PIC FALSE)
++ endif(LLVM_COMPILE_FLAGS_PIC)
++ endif(LLVM_SHARED_LIB)
+
+ if(LLVM_COMPILE_FLAGS_NDEBUG)
+ message(STATUS "llvm was compiled without assert")
+@@ -64,9 +65,25 @@
+ set(LLVM_COMPILED_WITHOUT_ASSERTS FALSE)
+ endif(LLVM_COMPILE_FLAGS_NDEBUG)
+
+- exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS )
+- exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libs core OUTPUT_VARIABLE LLVM_LIBS_CORE )
+- exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_VERSION )
++ if(LLVM_SHARED_LIB)
++ set(LLVM_LDFLAGS "")
++ set(LLVM_LIBS_CORE ${LLVM_SHARED_LIB})
++ else(LLVM_SHARED_LIB)
++ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS )
++ exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libs core OUTPUT_VARIABLE LLVM_LIBS_CORE )
++ endif(LLVM_SHARED_LIB)
++
++ MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR)
++ if(LLVM_SHARED_LIB)
++ set(${LIB_VAR} ${LLVM_SHARED_LIB})
++ set(${OBJECT_VAR} "")
++ else(LLVM_SHARED_LIB)
++ exec_program( perl ARGS ${LLVM_CONFIG_EXECUTABLE} --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} )
++ STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}})
++ SEPARATE_ARGUMENTS(${OBJECT_VAR})
++ STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}})
++ endif(LLVM_SHARED_LIB)
++ ENDMACRO(FIND_LLVM_LIBS)
+
+ if(LLVM_INCLUDE_DIR)
+ set(LLVM_FOUND TRUE)
diff --git a/OpenGTL.spec b/OpenGTL.spec
index 2aff3d7..f5ecf28 100644
--- a/OpenGTL.spec
+++ b/OpenGTL.spec
@@ -3,7 +3,7 @@
Name: OpenGTL
Version: 0.9.15.1
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Graphics Transformation Languages
License: LGPLv2
Group: Development/Languages
@@ -14,13 +14,15 @@ Source0: http://download.opengtl.org/OpenGTL-%{version}.tar.bz2
## upstreamable patches
Patch50: OpenGTL-0.9.15.1-version.patch
+# from Kevin_Kofler to support linking to llvm shared libs
+Patch51: OpenGTL-0.9.15.1-shared_llvm.patch
## upstream patches
BuildRequires: cmake
BuildRequires: doxygen graphviz
BuildRequires: libpng-devel
-BuildRequires: llvm-devel >= 2.8, llvm-static
+BuildRequires: llvm-devel >= 2.8
# docs
BuildRequires: ImageMagick ghostscript texlive-latex texlive-dvips
BuildRequires: zlib-devel
@@ -54,6 +56,7 @@ native programs that use the OpenGTL libraries.
%setup -q
%patch50 -p1 -b .version
+%patch51 -p1 -b .shared_llvm
%build
@@ -87,8 +90,7 @@ test "$(pkg-config --modversion GTLImageIO)" = "%{version}"
test "$(pkg-config --modversion OpenCTL)" = "%{version}"
test "$(pkg-config --modversion OpenShiva)" = "%{version}"
# some known failures due to missing test data
-# with llvm-2.8: 91% tests passed, 16 tests failed out of 172
-# with llvm-2.9-rc2: 53% tests passed, 80 tests failed out of 172
+# 91% tests passed, 16 tests failed out of 172
make test -C %{_target_platform} ||:
@@ -96,10 +98,6 @@ make test -C %{_target_platform} ||:
rm -rf %{buildroot}
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
-
%files
%defattr(-,root,root,-)
%doc COPYING OpenGTL/README
@@ -111,6 +109,9 @@ rm -rf %{buildroot}
%{_bindir}/shivainfo
%{_datadir}/OpenGTL/
+%post libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
+
%files libs
%defattr(-,root,root,-)
%{_libdir}/libGTLCore.so.%{version}
@@ -145,6 +146,9 @@ rm -rf %{buildroot}
%changelog
+* Sat Nov 05 2011 Rex Dieter <rdieter at fedoraproject.org> 0.9.15.1-3
+- shared llvm patch
+
* Wed Aug 3 2011 Michel Salim <salimma at fedoraproject.org> - 0.9.15.1-2
- Rebuild against final LLVM 2.9 release
- Reenable ppc64 support (to match LLVM)
More information about the scm-commits
mailing list