Enable gcc ASLR and DEP flags 36/166236/1
authorSangki Park <sangki79.park@samsung.com>
Mon, 8 Jan 2018 09:45:50 +0000 (18:45 +0900)
committerSangki Park <sangki79.park@samsung.com>
Mon, 8 Jan 2018 09:45:50 +0000 (18:45 +0900)
(Base commit : 0fb7c04338c6e0811a32920c3584809397cf19f2
 on Tizen 3.0 product git)

Change-Id: I679d785b28f6a81160b4075f447deee932850f50

ag-agent/CMakeLists.txt
bt-ipsp/CMakeLists.txt
hf-agent/CMakeLists.txt
hid-agent/CMakeLists.txt
map-agent/CMakeLists.txt
packaging/bluetooth-agent.spec
pb-agent/CMakeLists.txt

index ba4b676..bf6b9fe 100644 (file)
@@ -34,7 +34,8 @@ FOREACH(flag ${pkgs_ag_agent_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 SET(APP_SYSCONFDIR /var/lib/bluetooth)
 
index 5d3f910..0d5afa0 100644 (file)
@@ -29,7 +29,7 @@ FOREACH(flag ${ipsp_pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag} -Wall")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
 SET(CMAKE_C_FLAGS_DEBUG "-O0 -g")
 SET(CMAKE_C_FLAGS_RELEASE "-O2")
 SET(APP_SYSCONFDIR /opt/var/lib/bluetooth)
index 1ee2094..906ce3a 100644 (file)
@@ -17,7 +17,8 @@ FOREACH(flag ${pkgs_hf_agent_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_hf_agent_LDFLAGS})
index 09f54dc..186db21 100644 (file)
@@ -6,19 +6,20 @@ SET(SRCS bluetooth-hid-agent.c bluetooth-hid-manager.c)
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs_hf_agent
+pkg_check_modules(pkgs_hid_agent
                REQUIRED
                dlog aul bluetooth-api capi-appfw-app-manager
                glib-2.0 gio-2.0 gio-unix-2.0 capi-system-device vconf)
 
-FOREACH(flag ${pkgs_hf_agent_CFLAGS})
+FOREACH(flag ${pkgs_hid_agent_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_hf_agent_LDFLAGS})
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_hid_agent_LDFLAGS})
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/org.bluez.hid_agent.service
index d887e65..aeec496 100644 (file)
@@ -16,7 +16,8 @@ FOREACH(flag ${pkgs_map_agent_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_map_agent_LDFLAGS})
index 937288c..18a49ef 100644 (file)
@@ -47,6 +47,7 @@ BuildRequires:  pkgconfig(contacts-service2)
 BuildRequires:  pkgconfig(libexif)
 BuildRequires:  pkgconfig(gio-2.0)
 BuildRequires:  cmake
+BuildRequires:  prelink
 Requires: security-config
 Requires:      %{name}-compat = %{version}-%{release}
 Recommends:    %{name}-profile_common = %{version}-%{release}
@@ -117,7 +118,7 @@ export FFLAGS+=" -DARCH64"
 export CFLAGS+=" -fpie -DTIZEN_FEATURE_BT_PBAP_SIM -fvisibility=hidden "
 export CXXFLAGS+=" -fpie -DTIZEN_FEATURE_BT_PBAP_SIM -fvisibility=hidden "
 
-export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
+export LDFLAGS+=" -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie -Wl,-z,noexecstack"
 
 export CFLAGS_DEFAULT="$CFLAGS"
 
@@ -130,6 +131,7 @@ rm -rf %{buildroot}
 %make_install
 
 install -D -m 0644 packaging/bluetooth-map-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-map-agent.service
+execstack -c %{buildroot}%{_bindir}/bluetooth-map-agent
 # This usage of profile macro does NOT conflict 4.0 configurability.
 #%if "%{?profile}" != "mobile" && "%{?profile}" != "tv"
 # Original: wearable, ivi. Added: common, "undefined"
@@ -141,6 +143,7 @@ install -D -m 0644 packaging/bluetooth-map-agent.service %{buildroot}%{_libdir}/
 #install -D -m 0644 %{buildroot}/usr/bin/bt-ipsp %{buildroot}%{_bindir}/
 #%endif
 install -D -m 0644 packaging/bluetooth-pbap-agent.service %{buildroot}%{_libdir}/systemd/system/bluetooth-pbap-agent.service
+execstack -c %{buildroot}%{_bindir}/bluetooth-pb-agent
 
 %post
 %if 0%{?sec_product_feature_bt_map_server_enable}
index fb2b4ed..faa8eeb 100644 (file)
@@ -15,7 +15,8 @@ pkg_check_modules(pkgs_pb_agent
 FOREACH(flag ${pkgs_pb_agent_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC -Wall -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -Werror")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_pb_agent_LDFLAGS})