[condor] Convert condor to shared libraries.

Brian Bockelman bbockelm at fedoraproject.org
Mon Jun 13 14:33:39 UTC 2011


commit 5b816ceb6b4c0ebdb7e8ac78b79eb905990c733d
Author: Brian Bockelman <bbockelm at cse.unl.edu>
Date:   Mon Jun 13 09:32:25 2011 -0500

    Convert condor to shared libraries.

 condor.spec              |    7 +-
 condor_shared_libs.patch |  584 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 590 insertions(+), 1 deletions(-)
---
diff --git a/condor.spec b/condor.spec
index 5bff4e8..d1ea4b9 100644
--- a/condor.spec
+++ b/condor.spec
@@ -115,6 +115,7 @@ Patch3: chkconfig_off.patch
 %if !%git_build
 Patch4: 7.7.0-catch-up.patch
 %endif
+Patch5: condor_shared_libs.patch
 
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
@@ -364,6 +365,7 @@ exit 0
 %patch4 -p1
 %endif
 %patch0 -p1
+%patch5 -p1
 
 # fix errant execute permissions
 find src -perm /a+x -type f -name "*.[Cch]" -exec chmod a-x {} \;
@@ -443,9 +445,10 @@ populate %_sysconfdir/condor %{buildroot}/%{_usr}/lib/condor_ssh_to_job_sshd_con
 
 # Things in /usr/lib really belong in /usr/share/condor
 populate %{_datadir}/condor %{buildroot}/%{_usr}/lib/*
-# Except for libclassad
+# Except for the shared libs
 populate %{_libdir}/ %{buildroot}/%{_datadir}/condor/libclassad.so*
 rm -f %{buildroot}/%{_datadir}/condor/libclassads.a
+mv %{buildroot}%{_datadir}/condor/lib*.so %{buildroot}%{_libdir}/
 
 populate %{_libdir}/condor/plugins %{buildroot}/%{_usr}/libexec/*-plugin.so
 
@@ -752,6 +755,7 @@ rm -rf %{buildroot}
 %_sbindir/nordugrid_gahp
 %_sbindir/gt4_gahp
 %_sbindir/gt42_gahp
+%_libdir/lib*.so
 #%_sbindir/condor_credd
 %config(noreplace) %_var/lib/condor/condor_config.local
 %defattr(-,condor,condor,-)
@@ -847,6 +851,7 @@ rm -rf %{buildroot}
 %doc LICENSE-2.0.txt NOTICE.txt
 %_libdir/libclassad.so.1
 %_libdir/libclassad.so.1.1.0
+%_libdir/libclassads.so
 
 %files classads-devel
 %defattr(-,root,root,-)
diff --git a/condor_shared_libs.patch b/condor_shared_libs.patch
new file mode 100644
index 0000000..9166fba
--- /dev/null
+++ b/condor_shared_libs.patch
@@ -0,0 +1,584 @@
+diff --git a/build/cmake/CondorConfigure.cmake b/build/cmake/CondorConfigure.cmake
+index ad69e0c..72c4212 100644
+--- a/build/cmake/CondorConfigure.cmake
++++ b/build/cmake/CondorConfigure.cmake
+@@ -99,7 +99,7 @@ set( CONDOR_EXTERNAL_DIR ${CONDOR_SOURCE_DIR}/externals )
+ 
+ # set to true to enable printing of make actions
+ set( CMAKE_VERBOSE_MAKEFILE FALSE )
+-set( BUILD_SHARED_LIBS FALSE )
++#set( BUILD_SHARED_LIBS FALSE )
+ 
+ # Windows is so different perform the check 1st and start setting the vars.
+ if( NOT WINDOWS)
+@@ -121,7 +121,7 @@ if( NOT WINDOWS)
+ 	set( CMAKE_SUPPRESS_REGENERATION FALSE )
+ 
+ 	# when we want to distro dynamic libraries only with localized rpaths.
+-	set (CMAKE_SKIP_RPATH TRUE)
++	# set (CMAKE_SKIP_RPATH TRUE)
+ 	# set (CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+ 	# set (CMAKE_INSTALL_RPATH YOUR_LOC)
+ 	# set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+@@ -446,7 +446,8 @@ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/krb5/1.4.3-p0)
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/openssl/0.9.8h-p2)
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/pcre/7.6)
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/gsoap/2.7.10-p5)
+-add_subdirectory(${CONDOR_SOURCE_DIR}/src/classad)
++# use from external package
++add_subdirectory(${CONDOR_SOURCE_DIR}/src/classad)
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/zlib/1.2.3)
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/curl/7.19.6-p1 )
+ add_subdirectory(${CONDOR_EXTERNAL_DIR}/bundles/hadoop/0.21.0)
+@@ -546,7 +547,7 @@ include_directories(${CONDOR_SOURCE_DIR}/src/ccb)
+ include_directories(${CONDOR_SOURCE_DIR}/src/condor_io)
+ include_directories(${CONDOR_SOURCE_DIR}/src/h)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/src/h)
+-include_directories(${CONDOR_SOURCE_DIR}/src/classad)
++include_directories(${CONDOR_SOURCE_DIR}/src/classad)
+ if (WANT_CONTRIB)
+     include_directories(${CONDOR_SOURCE_DIR}/src/condor_contrib)
+ endif(WANT_CONTRIB)
+diff --git a/build/cmake/macros/CondorStaticLib.cmake b/build/cmake/macros/CondorStaticLib.cmake
+index 4f1273e..b228180 100644
+--- a/build/cmake/macros/CondorStaticLib.cmake
++++ b/build/cmake/macros/CondorStaticLib.cmake
+@@ -23,7 +23,9 @@ SET(_SRCS ${ARGN})
+ # ADD_PRECOMPILED_HEADER macro expects to operate on a global _SRCS
+ ADD_PRECOMPILED_HEADER()
+ 
+-add_library(${_CNDR_TARGET} STATIC ${_SRCS})
++add_library(${_CNDR_TARGET} ${_SRCS})
++
++install(TARGETS ${_CNDR_TARGET} DESTINATION ${C_LIB})
+ 
+ if (CONDOR_EXTERNALS)
+ 	add_dependencies ( ${_CNDR_TARGET} ${CONDOR_EXTERNALS} )
+@@ -34,3 +36,17 @@ if ( WINDOWS )
+ endif ( WINDOWS )
+ 
+ ENDMACRO(CONDOR_STATIC_LIB)
++
++MACRO (CONDOR_REALLY_STATIC_LIB _CNDR_TARGET _SRCS)
++
++add_library(${_CNDR_TARGET} STATIC ${_SRCS})
++
++if (CONDOR_EXTERNALS)
++	add_dependencies ( ${_CNDR_TARGET} ${CONDOR_EXTERNALS} )
++endif()
++
++if ( WINDOWS )
++	set_property( TARGET ${_CNDR_TARGET} PROPERTY FOLDER "libraries" )
++endif ( WINDOWS )
++
++ENDMACRO(CONDOR_REALLY_STATIC_LIB)
+diff --git a/src/condor_chirp/CMakeLists.txt b/src/condor_chirp/CMakeLists.txt
+index 424d561..435743b 100644
+--- a/src/condor_chirp/CMakeLists.txt
++++ b/src/condor_chirp/CMakeLists.txt
+@@ -22,6 +22,9 @@ condor_static_lib( chirp_client "chirp_client.h;chirp_client.c" )
+ 
+ condor_exe( condor_chirp "condor_chirp.cpp" ${C_LIBEXEC}
+ "chirp_client;${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${GCB_FOUND};${GLOBUS_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_chirp -Wl,--allow-shlib-undefined)
+ 
+ install ( FILES Chirp.jar DESTINATION ${C_LIB} )
+ 
+diff --git a/src/condor_daemon_core.V6/CMakeLists.txt b/src/condor_daemon_core.V6/CMakeLists.txt
+index 9df4aa6..0ab562f 100644
+--- a/src/condor_daemon_core.V6/CMakeLists.txt
++++ b/src/condor_daemon_core.V6/CMakeLists.txt
+@@ -32,6 +32,7 @@ endif(DARWIN)
+ 
+ #create the library
+ condor_static_lib(daemon_core "${DCHeaderFiles};${DCSourceFiles}")
++target_link_libraries(daemon_core ccb)
+ 
+ if (WINDOWS)
+ 	set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
+diff --git a/src/condor_dagman/CMakeLists.txt b/src/condor_dagman/CMakeLists.txt
+index 54342bc..5a75448 100644
+--- a/src/condor_dagman/CMakeLists.txt
++++ b/src/condor_dagman/CMakeLists.txt
+@@ -24,3 +24,6 @@ condor_glob(DAGHdrs DAGSrcs "${submitDAG}")
+ condor_exe(condor_dagman "${DAGHdrs};${DAGSrcs}" ${C_BIN} "${CONDOR_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" ON)
+ 
+ condor_exe(condor_submit_dag "condor_submit_dag.cpp;dagman_multi_dag.cpp;dagman_recursive_submit.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_submit_dag -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_gridmanager/CMakeLists.txt b/src/condor_gridmanager/CMakeLists.txt
+index 108f8e4..ecd984e 100644
+--- a/src/condor_gridmanager/CMakeLists.txt
++++ b/src/condor_gridmanager/CMakeLists.txt
+@@ -28,7 +28,13 @@ if(NOT WIN_EXEC_NODE_ONLY)
+ 	if (NOT WINDOWS)
+         if (HAVE_EXT_GLOBUS)
+             condor_exe( gt4_gahp "gt4_gahp_wrapper.cpp" ${C_SBIN} "${GM_LINK_LIBS}" OFF )
++            # unfortunately libutils comes with undefined symbols introduced by
++            # libdaemon_core (even when linking libutils to it)
++            target_link_libraries(gt4_gahp -Wl,--allow-shlib-undefined)
+             condor_exe( gt42_gahp "gt42_gahp_wrapper.cpp" ${C_SBIN} "${GM_LINK_LIBS}" OFF )
++            # unfortunately libutils comes with undefined symbols introduced by
++            # libdaemon_core (even when linking libutils to it)
++            target_link_libraries(gt42_gahp -Wl,--allow-shlib-undefined)
+ 
+             add_custom_command(
+                 OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/grid_monitor.sh"
+diff --git a/src/condor_io/CMakeLists.txt b/src/condor_io/CMakeLists.txt
+index 6a77dbe..a7a310b 100644
+--- a/src/condor_io/CMakeLists.txt
++++ b/src/condor_io/CMakeLists.txt
+@@ -22,3 +22,4 @@ condor_glob( CedarHdrs CedarSrcs "${CeadarRmvSrcs}" )
+ 
+ #create the library
+ condor_static_lib(cedar "${CedarHdrs};${CedarSrcs}")
++target_link_libraries(cedar ${KRB5_FOUND} ${OPENSSL_FOUND})
+diff --git a/src/condor_power/CMakeLists.txt b/src/condor_power/CMakeLists.txt
+index cbe2175..f675e62 100644
+--- a/src/condor_power/CMakeLists.txt
++++ b/src/condor_power/CMakeLists.txt
+@@ -19,8 +19,14 @@
+ if(NOT WIN_EXEC_NODE_ONLY)
+ 
+ 	condor_exe( condor_power "power.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_power -Wl,--allow-shlib-undefined)
+ 
+ 	condor_exe( condor_power_state "power_state.cpp" ${C_LIBEXEC} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_power_state -Wl,--allow-shlib-undefined)
+ 
+ 	condor_selective_glob( "rooster*" ROOSTER )
+ 
+diff --git a/src/condor_prio/CMakeLists.txt b/src/condor_prio/CMakeLists.txt
+index 194f361..69ac019 100644
+--- a/src/condor_prio/CMakeLists.txt
++++ b/src/condor_prio/CMakeLists.txt
+@@ -17,3 +17,6 @@
+  ############################################################### 
+ 
+ condor_exe( condor_prio "prio.cpp" ${C_BIN} "qmgmt;${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_prio -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_privsep/CMakeLists.txt b/src/condor_privsep/CMakeLists.txt
+index 6c53c4d..ec1c996 100644
+--- a/src/condor_privsep/CMakeLists.txt
++++ b/src/condor_privsep/CMakeLists.txt
+@@ -25,4 +25,7 @@ condor_static_lib( privsep "${PrivsepHdrs};${PrivsepSrcs}" )
+ 
+ if (NOT WINDOWS)
+ 	condor_exe( condor_root_switchboard "${PrivsepRmvSrcs}" ${C_SBIN} "${CONDOR_TOOL_LIBS}" OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_root_switchboard -Wl,--allow-shlib-undefined)
+ endif()
+diff --git a/src/condor_procd/CMakeLists.txt b/src/condor_procd/CMakeLists.txt
+index df2d726..c05da62 100644
+--- a/src/condor_procd/CMakeLists.txt
++++ b/src/condor_procd/CMakeLists.txt
+@@ -28,11 +28,20 @@ else(WINDOWS)
+ endif(WINDOWS)
+ 
+ condor_daemon(procd "${ProcdRmvElements}" "procapi;utils;${PROCD_WIN_LINK_LIBS};${LIBCGROUP_FOUND}" "${C_SBIN}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_procd -Wl,--allow-shlib-undefined)
+ 
+ if (LINUX AND WANT_FULL_DEPLOYMENT)
+ 	condor_exe( procd_ctl "procd_ctl.cpp" ${C_SBIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${COREDUMPER_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(procd_ctl -Wl,--allow-shlib-undefined)
+ 
+ 	condor_exe( gidd_alloc "gidd_alloc.cpp" ${C_SBIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${COREDUMPER_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(gidd_alloc -Wl,--allow-shlib-undefined)
+ endif(LINUX AND WANT_FULL_DEPLOYMENT)
+ 
+ condor_static_lib(procd_client "${ProcClientElements}")
+diff --git a/src/condor_q.V6/CMakeLists.txt b/src/condor_q.V6/CMakeLists.txt
+index aeeb6e3..c9eeeec 100644
+--- a/src/condor_q.V6/CMakeLists.txt
++++ b/src/condor_q.V6/CMakeLists.txt
+@@ -17,3 +17,6 @@
+  ############################################################### 
+ 
+ condor_exe(condor_q "queue.cpp" ${C_BIN} "conversion;analysis;qmgmt;${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${POSTGRESQL_FOUND}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_q -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_rm.V6/CMakeLists.txt b/src/condor_rm.V6/CMakeLists.txt
+index 257a7bd..d860056 100644
+--- a/src/condor_rm.V6/CMakeLists.txt
++++ b/src/condor_rm.V6/CMakeLists.txt
+@@ -17,6 +17,9 @@
+  ############################################################### 
+ 
+ condor_exe( condor_rm "rm.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_rm -Wl,--allow-shlib-undefined)
+ clone_install( condor_rm "${C_BIN}" condor_hold "${C_BIN}" )
+ clone_install( condor_rm "${C_BIN}" condor_release "${C_BIN}" )
+ clone_install( condor_rm "${C_BIN}" condor_vacate_job "${C_BIN}" )
+diff --git a/src/condor_startd.V6/CMakeLists.txt b/src/condor_startd.V6/CMakeLists.txt
+index df8ae2f..0cdcd2f 100644
+--- a/src/condor_startd.V6/CMakeLists.txt
++++ b/src/condor_startd.V6/CMakeLists.txt
+@@ -32,6 +32,9 @@ condor_daemon( startd "${startdRmvElements}" "${CONDOR_LIBS};${PCRE_FOUND};${OPE
+ if (LINUX AND GLOBUS_FOUND)
+   condor_exe(condor_glexec_wrapper "glexec_wrapper.cpp" ${C_LIBEXEC} "${CONDOR_TOOL_LIBS};${KRB5_FOUND};${OPENSSL_FOUND};${PCRE_FOUND}" OFF )
+   install (FILES glexec_starter_setup.sh DESTINATION ${C_LIBEXEC} PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
++  # unfortunately libutils comes with undefined symbols introduced by
++  # libdaemon_core (even when linking libutils to it)
++  target_link_libraries(condor_glexec_wrapper -Wl,--allow-shlib-undefined)
+ endif()
+ 
+ 
+diff --git a/src/condor_starter.V6.1/CMakeLists.txt b/src/condor_starter.V6.1/CMakeLists.txt
+index 32680a1..5728dad 100644
+--- a/src/condor_starter.V6.1/CMakeLists.txt
++++ b/src/condor_starter.V6.1/CMakeLists.txt
+@@ -31,7 +31,13 @@ install ( FILES scimark2lib.jar CondorJavaWrapper.class CondorJavaInfo.class DES
+ if(LINUX AND WANT_GLEXEC)
+ 	install (FILES condor_glexec_setup condor_glexec_run condor_glexec_cleanup condor_glexec_kill condor_glexec_update_proxy DESTINATION ${C_LIBEXEC} PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+ 	condor_exe(condor_glexec_job_wrapper "glexec_job_wrapper.linux.cpp" ${C_LIBEXEC} "${CONDOR_TOOL_LIBS};${KRB5_FOUND};${OPENSSL_FOUND};${PCRE_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_glexec_job_wrapper -Wl,--allow-shlib-undefined)
+ 	condor_exe( rsh "condor_rsh.cpp" ${C_LIBEXEC} "${CONDOR_TOOL_LIBS};${KRB5_FOUND};${OPENSSL_FOUND};${PCRE_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(rsh -Wl,--allow-shlib-undefined)
+ endif()
+ 
+ if (HAVE_SSH_TO_JOB)
+diff --git a/src/condor_status.V6/CMakeLists.txt b/src/condor_status.V6/CMakeLists.txt
+index 199405d..96b9305 100644
+--- a/src/condor_status.V6/CMakeLists.txt
++++ b/src/condor_status.V6/CMakeLists.txt
+@@ -20,3 +20,6 @@ condor_glob(statusHdrs statusSrcs "")
+ 
+ condor_exe( condor_status "${statusHdrs};${statusSrcs}" ${C_BIN}
+ "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# libdaemoncore comes with a set of undefined symbols that are provided by
++# actual daemons, but no by condor_status -- need to ignore this one here
++target_link_libraries(condor_status -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_submit.V6/CMakeLists.txt b/src/condor_submit.V6/CMakeLists.txt
+index c459028..092849b 100644
+--- a/src/condor_submit.V6/CMakeLists.txt
++++ b/src/condor_submit.V6/CMakeLists.txt
+@@ -18,3 +18,6 @@
+ 
+ 
+ condor_exe( condor_submit "submit.cpp" ${C_BIN} "qmgmt;${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_submit -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_tools/CMakeLists.txt b/src/condor_tools/CMakeLists.txt
+index f547ef1..83841dd 100644
+--- a/src/condor_tools/CMakeLists.txt
++++ b/src/condor_tools/CMakeLists.txt
+@@ -16,36 +16,89 @@
+  # 
+  ############################################################### 
+ 
+-
+ set(TOOL_LINK_LIBS "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND}")
+ 
+ condor_exe(condor_cod "cod_tool.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_cod -Wl,--allow-shlib-undefined)
+ condor_exe(condor_preen "preen.cpp" ${C_SBIN} "qmgmt;${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_preen -Wl,--allow-shlib-undefined)
+ condor_exe(condor_advertise "advertise.cpp" ${C_SBIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_advertise -Wl,--allow-shlib-undefined)
+ condor_exe(condor_fetchlog "fetch_log.cpp" ${C_SBIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_fetchlog -Wl,--allow-shlib-undefined)
+ condor_exe(condor_config_val "config_val.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_config_val -Wl,--allow-shlib-undefined)
+ condor_exe(condor_userprio "user_prio.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_userprio -Wl,--allow-shlib-undefined)
+ condor_exe(condor_findhost "give_interactive.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_findhost -Wl,--allow-shlib-undefined)
+ condor_exe(condor_qedit "qedit.cpp" ${C_BIN} "qmgmt;${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_qedit -Wl,--allow-shlib-undefined)
+ 
+ if (HAVE_SSH_TO_JOB)
+ 	condor_exe(condor_ssh_to_job "ssh_to_job.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_ssh_to_job -Wl,--allow-shlib-undefined)
+ endif(HAVE_SSH_TO_JOB)
+ 
+ condor_exe(condor_transfer_data "transfer_data.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_transfer_data -Wl,--allow-shlib-undefined)
+ condor_exe(condor_version "version.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_version -Wl,--allow-shlib-undefined)
+ condor_exe(condor_wait "wait.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_wait -Wl,--allow-shlib-undefined)
+ condor_exe(condor_history "history.cpp" ${C_BIN} "${TOOL_LINK_LIBS};${POSTGRESQL_FOUND}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_history -Wl,--allow-shlib-undefined)
+ 
+ if (WANT_QUILL AND HAVE_EXT_POSTGRESQL)
+ 	condor_exe(condor_load_history "load_history.cpp" ${C_BIN} "tt;${TOOL_LINK_LIBS};${POSTGRESQL_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_load_history -Wl,--allow-shlib-undefined)
+ 	condor_exe(condor_dump_history "dump_history.cpp" ${C_BIN} "${TOOL_LINK_LIBS};${POSTGRESQL_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_dump_history -Wl,--allow-shlib-undefined)
+ 	condor_exe(condor_convert_history "convert_history.cpp" ${C_SBIN} "${TOOL_LINK_LIBS};${POSTGRESQL_FOUND}" OFF)
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_convert_history -Wl,--allow-shlib-undefined)
+ endif(WANT_QUILL AND HAVE_EXT_POSTGRESQL)
+ 
+ condor_exe(condor_store_cred "store_cred_main.cpp" ${C_SBIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_store_cred -Wl,--allow-shlib-undefined)
+ 
+ condor_exe(condor "tool.cpp" "${C_BIN}" "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor -Wl,--allow-shlib-undefined)
+ clone_install(condor "${C_BIN}" "condor_on;condor_off;condor_restart;condor_reconfig;condor_set_shutdown" "${C_SBIN}")
+ if (WANT_FULL_DEPLOYMENT)
+     clone_install(condor "${C_BIN}" "condor_set_shutdown" "${C_SBIN}")
+@@ -67,6 +120,9 @@ else(NOT WINDOWS)
+ endif(NOT WINDOWS)
+ 
+ condor_exe(condor_stats "stats.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_stats -Wl,--allow-shlib-undefined)
+ 
+ if( WINDOWS )
+ 	condor_exe(condor_setup "condor_setup.c" ${C_BIN} "${CONDOR_TOOL_LIBS}" OFF)
+@@ -128,3 +128,4 @@
+ 
+ condor_exe_test(condor_test_auth "test_auth.cpp" "${TOOL_LINK_LIBS}")
+ condor_exe(condor_test_match "condor_test_match.cpp" ${C_BIN} "${TOOL_LINK_LIBS}" OFF)
++target_link_libraries(condor_test_match -Wl,--allow-shlib-undefined)
+diff --git a/src/condor_userlog/CMakeLists.txt b/src/condor_userlog/CMakeLists.txt
+index 5901935..a6c9d63 100644
+--- a/src/condor_userlog/CMakeLists.txt
++++ b/src/condor_userlog/CMakeLists.txt
+@@ -18,9 +18,18 @@
+ 
+ 
+ condor_exe( condor_userlog "userlog.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_userlog -Wl,--allow-shlib-undefined)
+ 
+ condor_exe( condor_check_userlogs "condor_check_userlogs.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++# unfortunately libutils comes with undefined symbols introduced by
++# libdaemon_core (even when linking libutils to it)
++target_link_libraries(condor_check_userlogs -Wl,--allow-shlib-undefined)
+ 
+ if (NOT WINDOWS)
+ 	condor_exe( condor_userlog_job_counter "condor_userlog_job_counter.cpp" ${C_BIN} "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${KRB5_FOUND};${CLASSADS_FOUND};${COREDUMPER_FOUND}" OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(condor_userlog_job_counter -Wl,--allow-shlib-undefined)
+ endif()
+diff --git a/src/condor_utils/CMakeLists.txt b/src/condor_utils/CMakeLists.txt
+index a9b6322..0716428 100644
+--- a/src/condor_utils/CMakeLists.txt
++++ b/src/condor_utils/CMakeLists.txt
+@@ -19,8 +19,12 @@
+ 
+ ##################################################
+ # utils library
+-file( GLOB RmvSrcs y.tab* lex.yy* ckpt_server_api_stubs* libcondorapi_stubs*
+-soap_helpers* test_* *.t.cpp *test.cpp cat_url.cpp *Test* param_info_init.c )
++file( GLOB RmvSrcs y.tab* lex.yy* ckpt_server_api_stubs* libcondorapi_stubs* 
++soap_helpers* test_* *.t.cpp *test.cpp cat_url.cpp *Test* param_info_init.c
++state_machine_driver.unix.cpp)
++# exclude state_machine_driver.unix.cpp because it pulls in undefined symbols
++# (e.g. TransFuncNames src/condor_starter.std/starter.h) that do not become
++# part of libutils.
+ 
+ condor_glob( HeaderFiles SourceFiles "${RmvSrcs}" )
+ 
+@@ -35,6 +39,15 @@ add_custom_target (utils_genparams ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/param
+ 
+ condor_static_lib( utils "${HeaderFiles};${SourceFiles}" )
+ add_dependencies(utils utils_genparams syscall_numbers )
++# this shouldn't be linked against libdaemon_core, because it introduces
++# undefined symbols that can only be resolved by actual daemons, but it needs
++# some part
++target_link_libraries(utils sysapi procapi privsep procd_client daemon_client daemon_core qmgmt cedar ${CLASSADS_FOUND} ${PCRE_FOUND} ${GLOBUS_FOUND} ${POSTGRESQL_FOUND})
++if (WANT_CONTRIB)
++    if (HAVE_EXT_POSTGRESQL)
++        target_link_libraries(utils tt)
++    endif (HAVE_EXT_POSTGRESQL)
++endif(WANT_CONTRIB)
+ 
+ ##################################################
+ # condorapi & tests
+diff --git a/src/deployment_tools/CMakeLists.txt b/src/deployment_tools/CMakeLists.txt
+index c736e98..64f1c63 100644
+--- a/src/deployment_tools/CMakeLists.txt
++++ b/src/deployment_tools/CMakeLists.txt
+@@ -35,6 +35,9 @@ if (NOT WINDOWS AND WANT_FULL_DEPLOYMENT)
+ 	install ( FILES Execute.pm FileLock.pm DESTINATION ${C_LIB} PERMISSIONS ${CONDOR_SCRIPT_PERMS} )
+ 
+ 	condor_exe( uniq_pid_command "uniq_pid_tool_main.cpp" "${C_SBIN}" "${CONDOR_TOOL_LIBS};${KRB5_FOUND};${OPENSSL_FOUND};${PCRE_FOUND}" OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(uniq_pid_command -Wl,--allow-shlib-undefined)
+ 	clone_install( uniq_pid_command "${C_SBIN}" uniq_pid_midwife "${C_SBIN}" )
+ 	clone_install( uniq_pid_command "${C_SBIN}" uniq_pid_undertaker "${C_SBIN}" )
+ 
+diff --git a/src/nordugrid_gahp/CMakeLists.txt b/src/nordugrid_gahp/CMakeLists.txt
+index c011b50..31b4fd4 100644
+--- a/src/nordugrid_gahp/CMakeLists.txt
++++ b/src/nordugrid_gahp/CMakeLists.txt
+@@ -27,6 +27,9 @@ if (HAVE_EXT_GLOBUS AND HAVE_LDAP_H AND LDAP_FOUND )
+ 				${C_SBIN}
+ 				"${GLOBUS_GRID_UNIVERSE_NORDUGRID};${GLOBUS_GRID_UNIVERSE_COMMON};${GLOBUS_FOUND};${OPENSSL_FOUND};${LDAP_FOUND}"
+ 				OFF )
++	# unfortunately libutils comes with undefined symbols introduced by
++	# libdaemon_core (even when linking libutils to it)
++	target_link_libraries(nordugrid_gahp -Wl,--allow-shlib-undefined)
+ 
+ else()
+
+--- condor-7.6.0/src/condor_utils/event_handler.unix.cpp.orig	2011-06-13 08:09:34.293762653 -0500
++++ condor-7.6.0/src/condor_utils/event_handler.unix.cpp	2011-06-13 08:09:57.955762563 -0500
+@@ -52,7 +52,7 @@
+ 	{ SIGTTOU, "SIGTTOU" },
+ 	{ -1, 0 }
+ };
+-NameTable SigNames( SigNameArray );
++NameTable SigNamesAlt( SigNameArray );
+ 
+ 
+ EventHandler::EventHandler( void (*f)(int), sigset_t m )
+@@ -77,14 +77,14 @@
+ display_sigset( const char *msg, sigset_t *mask )
+ {
+ 	int					signo;
+-	NameTableIterator	next_sig( SigNames );
++	NameTableIterator	next_sig( SigNamesAlt );
+ 
+ 	if( msg ) {
+ 		dprintf( D_ALWAYS, msg );
+ 	}
+ 	while( (signo = next_sig()) != -1 ) {
+ 		if( sigismember(mask,signo) ) {
+-			dprintf( D_ALWAYS | D_NOHEADER, "%s ", SigNames.get_name(signo) );
++			dprintf( D_ALWAYS | D_NOHEADER, "%s ", SigNamesAlt.get_name(signo) );
+ 		}
+ 	}
+ 	dprintf( D_ALWAYS | D_NOHEADER, "\n" );
+@@ -94,7 +94,7 @@
+ void
+ EventHandler::install()
+ {
+-	NameTableIterator next_sig( SigNames );
++	NameTableIterator next_sig( SigNamesAlt );
+ 	struct sigaction action;
+ 	int		i;
+ 	int		signo;
+@@ -126,7 +126,7 @@
+ 			}
+ 			dprintf( D_FULLDEBUG,
+ 				"\t*FSM* Installed handler %p for signal %s, flags = 0x%x\n",
+-				action.sa_handler, SigNames.get_name(signo), action.sa_flags
++				action.sa_handler, SigNamesAlt.get_name(signo), action.sa_flags
+ 			);
+ 		}
+ 	}
+@@ -138,7 +138,7 @@
+ void
+ EventHandler::de_install()
+ {
+-	NameTableIterator next_sig( SigNames );
++	NameTableIterator next_sig( SigNamesAlt );
+ 	//struct sigaction action;//unused variable, avoiding warning.
+ 	int		signo;
+ 	int		i;
+@@ -158,7 +158,7 @@
+ 			}
+ 			dprintf( D_FULLDEBUG,
+ 				"\t*FSM* Installed handler %p for signal %s\n",
+-				o_action[i].sa_handler, SigNames.get_name(signo)
++				o_action[i].sa_handler, SigNamesAlt.get_name(signo)
+ 			);
+ 		}
+ 	}
+--- a/src/classad/CMakeLists.txt.orig	2011-06-13 08:59:21.550762290 -0500
++++ b/src/classad/CMakeLists.txt	2011-06-13 08:59:30.439761938 -0500
+@@ -52,7 +52,7 @@
+ if (NOT WINDOWS)
+ 
+   condor_selective_glob("attrrefs.*;classad.*;collection.*;collectionBase.*;debug.*;exprList.*;exprTree.*;fnCall.*;indexfile.*;lexer.*;lexerSource.*;literals.*;matchClassad.*;operators.*;query.*;sink.*;source.*;transaction.*;util.*;value.*;view.*;xmlLexer.*;xmlSink.*;xmlSource.*;cclassad.*;common.*" ClassadSrcs)
+-  add_library( classads STATIC ${ClassadSrcs} )    # the one which all of condor depends upon
++  add_library( classads SHARED ${ClassadSrcs} )    # the one which all of condor depends upon
+ 
+   if (LINUX)  
+   	add_library( classad SHARED ${ClassadSrcs} )   # for distribution at this point may swap to depend at a future date.
+--- a/src/condor_sysapi/CMakeLists.txt.orig	2011-06-13 09:09:43.547762138 -0500
++++ b/src/condor_sysapi/CMakeLists.txt	2011-06-13 09:10:25.624762540 -0500
+@@ -18,7 +18,7 @@
+ 
+ set(BENCH_LINK_LIBS "${TOOL_LINK_LIBS}")
+ 
+-file( GLOB SysApiRmvElements *_t.cpp *.t.* dhry21b* *_main.cpp )
++file( GLOB SysApiRmvElements *.t.* dhry21b* *_main.cpp )
+ 
+ condor_glob(SysapiHeaderFiles SysapiSourceFiles "${SysApiRmvElements}" )
+
+@@ -28,4 +28,6 @@
+ # there was a test target which was never used.
+ # it makes the most sense to hook in a UT here instead of integ test
+ condor_exe(condor_kflops "kflops_main.cpp" ${C_LIBEXEC} "sysapi;condorapi;${BENCH_LINK_LIBS}" OFF)
++target_link_libraries(condor_kflops -Wl,--allow-shlib-undefined)
+ condor_exe(condor_mips "mips_main.cpp" ${C_LIBEXEC} "sysapi;condorapi;${BENCH_LINK_LIBS}" OFF)
++target_link_libraries(condor_mips -Wl,--allow-shlib-undefined)
+--- a/src/ec2_gahp/CMakeLists.txt.orig	2011-06-13 09:16:33.006762337 -0500
++++ b/src/ec2_gahp/CMakeLists.txt	2011-06-13 09:12:58.977762215 -0500
+@@ -28,6 +28,7 @@
+     	"${HeaderFiles};${SourceFiles}"	${C_SBIN}
+ 	    "${CONDOR_TOOL_LIBS};${PCRE_FOUND};${OPENSSL_FOUND};${CURL_FOUND};${ZLIB_FOUND}"
+     	OFF )
++	target_link_libraries(ec2_gahp -Wl,--allow-shlib-undefined)
+ 
+     # Build an executable needed by the tests.
+ 	condor_exe_test( queryAPI-sim
+ 


More information about the scm-commits mailing list