Rearrange libraries and build files.
This is the first change in an attempt to arrange the linking so that more errors are detected at link-time. - All files in server/core but for gateway.c are linked to one shared library called maxscale-common. - The files log_manager/log_manager.cc and utils/skygw_utils.cc are built into maxscale-common as well. - MaxScale itself consists now only of gateway.c and is linked with maxscale-common. - All plugins link with maxscale-common. - All executables link in addition with {EMBEDDED_LIB}. After this change, the change (MXS-517) where query_classifier is the only component that uses ${EMBEDDED_LIB} and the rest mysqlclient can be made much cleaner. After a few additional steps, all shared libraries can be linked with the linker flags "-Wl,-z,defs", which directs the linker to resolve all symbols. That will require that all shared libraries list all the libraries they need, but will at the same time ensure that any missing symbols are detected at link-time and not at run-time.
This commit is contained in:
@ -1,20 +1,20 @@
|
||||
add_library(MySQLClient SHARED mysql_client.c mysql_common.c)
|
||||
target_link_libraries(MySQLClient log_manager)
|
||||
target_link_libraries(MySQLClient maxscale-common)
|
||||
set_target_properties(MySQLClient PROPERTIES VERSION "1.0.0")
|
||||
install(TARGETS MySQLClient DESTINATION ${MAXSCALE_LIBDIR})
|
||||
|
||||
add_library(MySQLBackend SHARED mysql_backend.c mysql_common.c)
|
||||
target_link_libraries(MySQLBackend log_manager)
|
||||
target_link_libraries(MySQLBackend maxscale-common)
|
||||
set_target_properties(MySQLBackend PROPERTIES VERSION "2.0.0")
|
||||
install(TARGETS MySQLBackend DESTINATION ${MAXSCALE_LIBDIR})
|
||||
|
||||
add_library(telnetd SHARED telnetd.c)
|
||||
target_link_libraries(telnetd log_manager)
|
||||
target_link_libraries(telnetd maxscale-common)
|
||||
set_target_properties(telnetd PROPERTIES VERSION "1.0.1")
|
||||
install(TARGETS telnetd DESTINATION ${MAXSCALE_LIBDIR})
|
||||
|
||||
add_library(HTTPD SHARED httpd.c)
|
||||
target_link_libraries(HTTPD log_manager)
|
||||
target_link_libraries(HTTPD maxscale-common)
|
||||
set_target_properties(HTTPD PROPERTIES VERSION "1.0.1")
|
||||
install(TARGETS HTTPD DESTINATION ${MAXSCALE_LIBDIR})
|
||||
|
||||
@ -26,11 +26,7 @@ if(BUILD_TESTS)
|
||||
endif()
|
||||
|
||||
add_library(maxscaled SHARED maxscaled.c)
|
||||
target_link_libraries(maxscaled log_manager)
|
||||
target_link_libraries(maxscaled maxscale-common)
|
||||
set_target_properties(maxscaled PROPERTIES VERSION "1.0.0")
|
||||
install(TARGETS maxscaled DESTINATION ${MAXSCALE_LIBDIR})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user