--- a/src/condor_sysapi/CMakeLists.txt
+++ b/src/condor_sysapi/CMakeLists.txt
@@ -16,8 +16,8 @@
  # 
  ############################################################### 
 
-
-file( GLOB SysApiRmvElements *_t.cpp *.t.* dhry21b* *_main.cpp )
+ # exclude _main.cpp files to avoid duplicate and useless symbols
+file( GLOB SysApiRmvElements *.t.* dhry21b* *_main.cpp )
 
 condor_glob(SysapiHeaderFiles SysapiSourceFiles "${SysApiRmvElements}" )
 
@@ -26,5 +26,10 @@
 
 # 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;${TOOL_LINK_LIBS}" OFF)
-condor_exe(condor_mips "mips_main.cpp" "${C_LIBEXEC}" "sysapi;condorapi;${TOOL_LINK_LIBS}" OFF)
+condor_exe(condor_kflops "kflops_main.cpp" "${C_LIBEXEC}" "utils;sysapi;condorapi;${TOOL_LINK_LIBS}" OFF)
+# unfortunately libutils comes with undefined symbols introduced by
+# libdaemon_core (even when linking libutils to it)
+target_link_libraries(condor_kflops -Wl,--allow-shlib-undefined)
+condor_exe(condor_mips "mips_main.cpp" "${C_LIBEXEC}" "utils;sysapi;condorapi;${TOOL_LINK_LIBS}" OFF)
+# this is needed because libsysapi as a circular dependency on libutils
+target_link_libraries(condor_mips utils -Wl,--allow-shlib-undefined)
--- a/src/condor_chirp/CMakeLists.txt
+++ b/src/condor_chirp/CMakeLists.txt
@@ -22,6 +22,9 @@
 
 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} )
 
--- a/src/condor_daemon_core.V6/CMakeLists.txt
+++ b/src/condor_daemon_core.V6/CMakeLists.txt
@@ -32,6 +32,7 @@
 
 #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")
--- a/src/condor_dagman/CMakeLists.txt
+++ b/src/condor_dagman/CMakeLists.txt
@@ -24,3 +24,6 @@
 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)
--- a/src/condor_io/CMakeLists.txt
+++ b/src/condor_io/CMakeLists.txt
@@ -22,3 +22,4 @@
 
 #create the library
 condor_static_lib(cedar "${CedarHdrs};${CedarSrcs}")
+target_link_libraries(cedar ${KRB5_FOUND} ${OPENSSL_FOUND})
--- 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( 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(power_state -Wl,--allow-shlib-undefined)
 
 	condor_selective_glob( "rooster*" ROOSTER )
 
--- 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)
--- a/src/condor_privsep/CMakeLists.txt
+++ b/src/condor_privsep/CMakeLists.txt
@@ -25,4 +25,7 @@
 
 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()
--- a/src/condor_procd/CMakeLists.txt
+++ b/src/condor_procd/CMakeLists.txt
@@ -28,11 +28,20 @@
 endif(WINDOWS)
 
 condor_daemon(procd "${ProcdRmvElements}" "procapi;utils;${PROCD_WIN_LINK_LIBS}" "${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}")
--- 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)
--- 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}" )
--- a/src/condor_status.V6/CMakeLists.txt
+++ b/src/condor_status.V6/CMakeLists.txt
@@ -20,3 +20,6 @@
 
 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)
--- 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)
--- 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 @@
 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)
--- 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()
--- 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 @@
 
 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
@@ -44,7 +57,7 @@
     set_property( TARGET utils_genparams PROPERTY FOLDER "libraries" )
 endif()
 
-condor_static_lib( condorapi "${ApiSrcs}" )
+condor_really_static_lib( condorapi "${ApiSrcs}" )
 add_dependencies( condorapi utils )
 
 if (NOT WINDOWS)
--- a/src/deployment_tools/CMakeLists.txt
+++ b/src/deployment_tools/CMakeLists.txt
@@ -35,6 +35,9 @@
 	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}" )
 
--- a/build/cmake/CondorConfigure.cmake
+++ b/build/cmake/CondorConfigure.cmake
@@ -99,7 +99,7 @@
 
 # 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 @@
 	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/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/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)
--- a/build/cmake/macros/CondorStaticLib.cmake
+++ b/build/cmake/macros/CondorStaticLib.cmake
@@ -23,7 +23,9 @@
 # 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 @@
 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)
--- a/src/condor_starter.V6.1/CMakeLists.txt
+++ b/src/condor_starter.V6.1/CMakeLists.txt
@@ -31,7 +31,13 @@
 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)
--- a/src/condor_startd.V6/CMakeLists.txt
+++ b/src/condor_startd.V6/CMakeLists.txt
@@ -32,6 +32,9 @@
 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()
 
 
--- a/src/nordugrid_gahp/CMakeLists.txt
+++ b/src/nordugrid_gahp/CMakeLists.txt
@@ -27,6 +27,9 @@
 				${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()
 
--- a/src/condor_gridmanager/CMakeLists.txt
+++ b/src/condor_gridmanager/CMakeLists.txt
@@ -28,7 +28,13 @@
 	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"
