Support prelink feature 42/217842/1
authorHwankyu Jhun <h.jhun@samsung.com>
Fri, 15 Nov 2019 02:24:32 +0000 (11:24 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Fri, 15 Nov 2019 02:24:32 +0000 (11:24 +0900)
If the `_prelink_enable` is defined, launchpad-process-pool and launchpad-loader
will be compiled without -pie and -fPIE option.

Change-Id: I91c2743b781121b1862d4b567e875c0d4da62943
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
CMakeLists.txt
packaging/launchpad.spec

index e338b05..ad32426 100755 (executable)
@@ -74,8 +74,16 @@ SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -fdata-sections -ffunction-secti
 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -D_FILE_OFFSET_BITS=64")
 SET(EXTRA_CFLAGS_common "${EXTRA_CFLAGS_common} -Werror")
 
+IF(_TIZEN_FEATURE_PRELINK)
+MESSAGE(STATUS "[__PRELINK__] Enable")
+SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${EXTRA_CFLAGS_common}")
+SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common}")
+ELSE(_TIZEN_FEATURE_PRELINK)
+MESSAGE(STATUS "[__PRELINK__] Disable")
 SET(EXTRA_CFLAGS_pool "${EXTRA_CFLAGS_pool} ${EXTRA_CFLAGS_common} -fPIE")
 SET(EXTRA_CFLAGS_loader "${EXTRA_CFLAGS_loader} ${EXTRA_CFLAGS_common} -fPIE")
+ENDIF(_TIZEN_FEATURE_PRELINK)
+
 SET(EXTRA_CFLAGS_lib "${EXTRA_CFLAGS_lib} ${EXTRA_CFLAGS_common}")
 SET(EXTRA_CFLAGS_hydra "${EXTRA_CFLAGS_hydra} ${EXTRA_CFLAGS_common}")
 
@@ -114,7 +122,13 @@ ADD_EXECUTABLE(${LAUNCHPAD_LOADER} ${${LAUNCHPAD_LOADER}_SOURCE_FILES})
 # Since we cannot set LD_LIBRARY_PATH directly by security issue, we make the
 # dynamic linker looks in the CWD forcely.
 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} "-ldl -Wl,-rpath,: -Wl,--disable-new-dtags")
+
+IF(_TIZEN_FEATURE_PRELINK)
+TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} ${${this_target_loader}_LDFLAGS})
+ELSE(_TIZEN_FEATURE_PRELINK)
 TARGET_LINK_LIBRARIES(${LAUNCHPAD_LOADER} ${${this_target_loader}_LDFLAGS} "-pie")
+ENDIF(_TIZEN_FEATURE_PRELINK)
+
 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_loader})
 SET_TARGET_PROPERTIES(${LAUNCHPAD_LOADER}
        PROPERTIES SKIP_BUILD_RPATH TRUE
@@ -135,7 +149,11 @@ SET(${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES
        )
 ADD_EXECUTABLE(${LAUNCHPAD_PROCESS_POOL} ${${LAUNCHPAD_PROCESS_POOL}_SOURCE_FILES})
 
+IF(_TIZEN_FEATURE_PRELINK)
+TARGET_LINK_LIBRARIES(${LAUNCHPAD_PROCESS_POOL} ${${this_target_pool}_LDFLAGS} "-lm")
+ELSE(_TIZEN_FEATURE_PRELINK)
 TARGET_LINK_LIBRARIES(${LAUNCHPAD_PROCESS_POOL} ${${this_target_pool}_LDFLAGS} "-pie -lm")
+ENDIF(_TIZEN_FEATURE_PRELINK)
 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL} PROPERTIES COMPILE_FLAGS ${EXTRA_CFLAGS_pool})
 SET_TARGET_PROPERTIES(${LAUNCHPAD_PROCESS_POOL}
        PROPERTIES SKIP_BUILD_RPATH TRUE
index ae7f379..89b88b4 100644 (file)
@@ -44,6 +44,13 @@ Obsoletes: amd-mod-launchpad
 %define tizen_arch32 0
 %endif
 
+
+%if "%{?_prelink_enable}" == "y"
+%define tizen_feature_prelink 1
+%else
+%define tizen_feature_prelink 0
+%endif
+
 %description
 Launchpad for launching applications
 
@@ -95,6 +102,9 @@ _TIZEN_FEATURE_LOADER_PRIORITY=ON
 %if 0%{?tizen_arch32}
 _TIZEN_FEATURE_SET_PERSONALITY_32=ON
 %endif
+%if 0%{?tizen_feature_prelink}
+_TIZEN_FEATURE_PRELINK=ON
+%endif
 
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
 %cmake -DVERSION=%{version} \
@@ -102,6 +112,7 @@ MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
        -D_TIZEN_FEATURE_PRIORITY_CHANGE:BOOL=${_TIZEN_FEATURE_PRIORITY_CHANGE} \
        -D_TIZEN_FEATURE_LOADER_PRIORITY:BOOL=${_TIZEN_FEATURE_LOADER_PRIORITY} \
        -D_TIZEN_FEATURE_SET_PERSONALITY_32:BOOL=${_TIZEN_FEATURE_SET_PERSONALITY_32} \
+       -D_TIZEN_FEATURE_PRELINK:BOOL=${_TIZEN_FEATURE_PRELINK} \
        .
 %__make %{?_smp_mflags}