From 6d24a22cc3e5a7cd55df1f7aae0bb150db67124b Mon Sep 17 00:00:00 2001 From: Sangki Park Date: Mon, 8 Jan 2018 18:45:50 +0900 Subject: [PATCH] Enable gcc ASLR and DEP flags (Base commit : 0fb7c04338c6e0811a32920c3584809397cf19f2 on Tizen 3.0 product git) Change-Id: I679d785b28f6a81160b4075f447deee932850f50 --- ag-agent/CMakeLists.txt | 3 ++- bt-ipsp/CMakeLists.txt | 2 +- hf-agent/CMakeLists.txt | 3 ++- hid-agent/CMakeLists.txt | 9 +++++---- map-agent/CMakeLists.txt | 3 ++- packaging/bluetooth-agent.spec | 5 ++++- pb-agent/CMakeLists.txt | 3 ++- 7 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ag-agent/CMakeLists.txt b/ag-agent/CMakeLists.txt index ba4b676..bf6b9fe 100644 --- a/ag-agent/CMakeLists.txt +++ b/ag-agent/CMakeLists.txt @@ -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) diff --git a/bt-ipsp/CMakeLists.txt b/bt-ipsp/CMakeLists.txt index 5d3f910..0d5afa0 100644 --- a/bt-ipsp/CMakeLists.txt +++ b/bt-ipsp/CMakeLists.txt @@ -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) diff --git a/hf-agent/CMakeLists.txt b/hf-agent/CMakeLists.txt index 1ee2094..906ce3a 100644 --- a/hf-agent/CMakeLists.txt +++ b/hf-agent/CMakeLists.txt @@ -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}) diff --git a/hid-agent/CMakeLists.txt b/hid-agent/CMakeLists.txt index 09f54dc..186db21 100644 --- a/hid-agent/CMakeLists.txt +++ b/hid-agent/CMakeLists.txt @@ -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 diff --git a/map-agent/CMakeLists.txt b/map-agent/CMakeLists.txt index d887e65..aeec496 100644 --- a/map-agent/CMakeLists.txt +++ b/map-agent/CMakeLists.txt @@ -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}) diff --git a/packaging/bluetooth-agent.spec b/packaging/bluetooth-agent.spec index 937288c..18a49ef 100644 --- a/packaging/bluetooth-agent.spec +++ b/packaging/bluetooth-agent.spec @@ -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} diff --git a/pb-agent/CMakeLists.txt b/pb-agent/CMakeLists.txt index fb2b4ed..faa8eeb 100644 --- a/pb-agent/CMakeLists.txt +++ b/pb-agent/CMakeLists.txt @@ -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}) -- 2.7.4