bugreport: Ensure library is linked to libraries we actually need 33/255033/3
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 11 Mar 2021 09:39:18 +0000 (10:39 +0100)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 11 Mar 2021 11:23:00 +0000 (12:23 +0100)
We always link to libcrash-manager but it might not be needed,
if livecoredump suport is disabled.

This commit prepares bugreport-service to be libcrash-manager-independent.

Change-Id: I4d506e517ce2da22daa047741187a15f91da4180

src/bugreport-service/CMakeLists.txt
src/bugreport-service/bugreport-service.c
src/crash-manager/CMakeLists.txt
src/crash-manager/crash-manager.c
src/crash-manager/crash-manager.h
src/shared/util.c
src/shared/util.h

index 5f6c045..4bdeb18 100644 (file)
@@ -6,6 +6,8 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/)
 SET(CRASH_SERVICE_SRCS
        bugreport-service.c
        diagnostics/diagnostics.c
+       ${CMAKE_SOURCE_DIR}/src/shared/util.c
+       ${CMAKE_SOURCE_DIR}/src/shared/config.c
        )
 
 INCLUDE(GNUInstallDirs)
@@ -17,6 +19,7 @@ pkg_check_modules(bugreport-service_pkgs REQUIRED
        gio-2.0
        gio-unix-2.0
        libzip
+       iniparser
        )
 
 FOREACH(flag ${bugreport-service_pkgs_CFLAGS})
@@ -30,7 +33,7 @@ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/ProcessM4.cmake)
 LINK_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/crash-manager)
 ADD_EXECUTABLE(${PROJECT_NAME} ${CRASH_SERVICE_SRCS})
 ADD_DEPENDENCIES(${PROJECT_NAME} crash-manager)
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bugreport-service_pkgs_LDFLAGS} -pie -lrt -lcrash-manager)
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${bugreport-service_pkgs_LDFLAGS} -pie -Wl,--as-needed -lrt -lcrash-manager)
 
 ADD_LIBRARY(libbugreport SHARED libbugreport-service.c)
 SET_TARGET_PROPERTIES(libbugreport PROPERTIES
index 36c9a59..b869140 100644 (file)
@@ -32,6 +32,7 @@
 #include "crash-manager/crash-manager.h"
 #include "libbugreport.h"
 #include "shared/log.h"
+#include "shared/util.h"
 #include "diagnostics/diagnostics.h"
 
 /* Dbus activation */
index 4a2fb3b..2c08cdb 100644 (file)
@@ -12,6 +12,7 @@ SET(LIB_CRASH_MANAGER_SRCS
 
 SET(CRASH_MANAGER_SRCS
         main.c
+       ${CMAKE_SOURCE_DIR}/src/shared/util.c
    )
 
 INCLUDE(GNUInstallDirs)
index d4fb782..1554f34 100644 (file)
@@ -92,11 +92,6 @@ config_t config;
 static char* crash_dump_path;
 static char* crash_temp_path;
 
-bool have_livecoredumper(void)
-{
-       return access(LIVEDUMPER_BIN_PATH, X_OK) == 0;
-}
-
 /* pkgmgrinfo filter list function for getting application ID */
 static int appinfo_get_appid_func(pkgmgrinfo_appinfo_h handle,
                void *user_data)
index e5db78f..c511043 100644 (file)
@@ -61,5 +61,4 @@ bool crash_manager_livedump_pid(pid_t pid, const char *dump_reason, char *report
 void crash_info_init(struct crash_info *cinfo);
 void crash_manager_free(struct crash_info *cinfo);
 
-bool have_livecoredumper(void);
 #endif
index a8d6ba9..e26d261 100644 (file)
 #include <ctype.h>
 #include <grp.h>
 
+#include "defs.h"
 #include "util.h"
 #include "log.h"
 
+bool have_livecoredumper(void)
+{
+       return access(LIVEDUMPER_BIN_PATH, X_OK) == 0;
+}
+
 int write_fd(int fd, const void *buf, int len)
 {
        int count;
index 5a79806..85dd15f 100644 (file)
@@ -32,6 +32,8 @@
 extern "C" {
 #endif
 
+bool have_livecoredumper(void);
+
 int write_fd(int fd, const void *buf, int len);
 
 int copy_bytes(int destfd, int srcfd, off_t *ncopied);