[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