diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2014-08-04 12:41:16 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-08-04 12:41:39 +0200 |
commit | acb671315574cf094c213d307845654f036705bb (patch) | |
tree | 247ff65ced3770d543c9a257de97c631674507d7 | |
parent | c6ad4e2ef5328dc518016a178c5b3b4063287556 (diff) |
add some debug related optimization
-rw-r--r-- | mk/package.mk | 3 | ||||
-rw-r--r-- | mk/vars.mk | 21 | ||||
-rw-r--r-- | package/libthread_db/Makefile | 3 | ||||
-rw-r--r-- | target/config/Config.in.toolchain | 18 |
4 files changed, 24 insertions, 21 deletions
diff --git a/mk/package.mk b/mk/package.mk index 75d88c947..be50aaa5e 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -90,6 +90,7 @@ build-all-pkgs: ${_IPKGS_COOKIE} # noremove -> do not remove files from $(STAGING_TARGET_DIR) while # cleaning (needed for toolchain packages like glibc) # nostaging -> do not install files to $(STAGING_TARGET_DIR) +# nostrip -> do not strip files # dev -> create a development subpackage with headers and pkg-config files # devonly -> create a development package only # should be package format independent and modular in the future @@ -192,12 +193,14 @@ ifneq (,$(filter dev,$(7))) endif $$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE} +ifeq (,$(filter nostrip,$(7))) ifeq ($(ADK_DEBUG),) @$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE) endif ifeq ($(ADK_DEBUG_STRIP),y) @$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE) endif +endif ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y) -rm -rf $${IDIR_$(1)}/etc else diff --git a/mk/vars.mk b/mk/vars.mk index 0b1a8221a..cd2cc61fa 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -153,14 +153,18 @@ TARGET_CFLAGS+= -mlongcalls -mtext-section-literals TARGET_CXXFLAGS+= -mlongcalls -mtext-section-literals endif +# add configured cflags for optimization +TARGET_CFLAGS+= $(ADK_TARGET_CFLAGS_OPT) +TARGET_CXXFLAGS+= $(ADK_TARGET_CFLAGS_OPT) +# always add debug information +TARGET_CFLAGS+= -g3 +TARGET_CXXFLAGS+= -g3 + ifneq ($(ADK_DEBUG),) -ifeq ($(ADK_DEBUG_OPTS),y) -TARGET_CFLAGS+= -g3 -fno-omit-frame-pointer $(ADK_TARGET_CFLAGS_OPT) -TARGET_CXXFLAGS+= -g3 -fno-omit-frame-pointer $(ADK_TARGET_CFLAGS_OPT) -else -TARGET_CFLAGS+= -O0 -g3 -fno-omit-frame-pointer -TARGET_CXXFLAGS+= -O0 -g3 -fno-omit-frame-pointer -endif +TARGET_CFLAGS+= -fno-omit-frame-pointer +TARGET_CXXFLAGS+= -fno-omit-frame-pointer +TARGET_CFLAGS+= -funwind-tables -fasynchronous-unwind-tables +TARGET_CXXFLAGS+= -funwind-tables -fasynchronous-unwind-tables else TARGET_CPPFLAGS+= -DNDEBUG TARGET_CFLAGS+= -fomit-frame-pointer $(ADK_TARGET_CFLAGS_OPT) @@ -168,9 +172,6 @@ TARGET_CXXFLAGS+= -fomit-frame-pointer $(ADK_TARGET_CFLAGS_OPT) # stop generating eh_frame stuff TARGET_CFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables TARGET_CXXFLAGS+= -fno-unwind-tables -fno-asynchronous-unwind-tables -# always add debug information -TARGET_CFLAGS+= -g3 -TARGET_CXXFLAGS+= -g3 endif ifeq ($(ADK_LINUX_ARM),y) diff --git a/package/libthread_db/Makefile b/package/libthread_db/Makefile index 6f393eeb2..ea56097d5 100644 --- a/package/libthread_db/Makefile +++ b/package/libthread_db/Makefile @@ -19,6 +19,7 @@ endif PKG_NAME:= libthread-db PKG_DESCR:= posix threads library for gdb/gdbserver PKG_SECTION:= libs/misc +PKG_OPTS:= nostrip PKG_CFLINE_LIBTHREAD_DB:=depends on ADK_PACKAGE_GDB || ADK_PACKAGE_GDBSERVER @@ -26,7 +27,7 @@ NO_DISTFILES:= 1 include ${ADK_TOPDIR}/mk/package.mk -$(eval $(call PKG_template,LIBTHREAD_DB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +$(eval $(call PKG_template,LIBTHREAD_DB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS})) CONFIG_STYLE:= manual BUILD_STYLE:= manual diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain index 9a799d72c..6335344ce 100644 --- a/target/config/Config.in.toolchain +++ b/target/config/Config.in.toolchain @@ -105,25 +105,23 @@ config ADK_TARGET_USE_GNU_HASHSTYLE dependencies. See http://www.akkadia.org/drepper/dsohowto.pdf config ADK_DEBUG - bool "Compile applications with debug support by default" + bool "Compile applications with debug support and do not strip" default n help - All packages and libc will be compiled and packaged with debug information. + All software for the target will be compiled with: + -fno-omit-frame-pointer + -funwind-tables + -fasynchronous-unwind-tables + Software will not be stripped. Mostly useful for NFS root or big USB/CF or hard disk setups. -config ADK_DEBUG_OPTS - bool "use optimization cflags" - depends on ADK_DEBUG - default n - help - All packages and C library will be compiled with debug information and optimization flags on. - config ADK_DEBUG_STRIP bool "strip target binaries/libraries for gdbserver usage" depends on ADK_DEBUG default n help - All packages and C library will be compiled with debug information, but stripped for the target. + All packages and C library will be compiled with debug information, + but stripped for the target. config ADK_TARGET_USE_STATIC_LIBS bool "Link applications statically by default" |