mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Steffen Trumtrar <s.trumtrar@pengutronix.de>
To: Barebox List <barebox@lists.infradead.org>
Subject: [PATCH 05/15] debug: Add CONFIG_DEBUG_READABLE_ASM
Date: Thu, 29 Nov 2018 12:30:38 +0100	[thread overview]
Message-ID: <20181129113048.31857-6-s.trumtrar@pengutronix.de> (raw)
In-Reply-To: <20181129113048.31857-1-s.trumtrar@pengutronix.de>

Based on linux v3.3 patch: 1873e870fd63ee4b87dbe0125ca373e420fb4987

    debug: Add CONFIG_READABLE_ASM

    Add a config option to disable various gcc compiler optimizations that
    make assembler listings much harder to read. This is everything that reorders
    code significantly or creates partial functions.

    This is mainly to keep kernel hackers sane.

    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Link: http://lkml.kernel.org/r/1332960678-11879-2-git-send-email-andi@firstfloor.org
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>

Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
---
 Makefile       | 11 +++++++++++
 common/Kconfig |  8 ++++++++
 2 files changed, 19 insertions(+)

diff --git a/Makefile b/Makefile
index cddff1267972..ee6c8fc82d5a 100644
--- a/Makefile
+++ b/Makefile
@@ -478,6 +478,17 @@ CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
 # disable pointer signed / unsigned warnings in gcc 4.0
 CFLAGS += $(call cc-option,-Wno-pointer-sign,)
 
+ifdef CONFIG_DEBUG_READABLE_ASM
+# Disable optimizations that make assembler listings hard to read.
+# reorder blocks reorders the control in the function
+# ipa clone creates specialized cloned functions
+# partial inlining inlines only parts of functions
+CFLAGS += $(call cc-option,-fno-reorder-blocks,) \
+          $(call cc-option,-fno-ipa-cp-clone,) \
+          $(call cc-option,-fno-partial-inlining)
+endif
+
+
 # KBUILD_IMAGE: Default barebox image to build
 # Depending on the architecture, this can be either compressed or not.
 # It will also include any necessary headers to be bootable.
diff --git a/common/Kconfig b/common/Kconfig
index 2ad92158c145..c97beea81513 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -1228,6 +1228,14 @@ config DEBUG_INITCALLS
 	help
 	  If enabled this will print initcall traces.
 
+config DEBUG_READABLE_ASM
+        bool "Generate readable assembler code"
+        help
+          Disable some compiler optimizations that tend to generate human unreadable
+          assembler output. This may make the kernel slightly slower, but it helps
+          to keep kernel developers who have to stare a lot at assembler listings
+          sane.
+
 endmenu
 
 config HAS_DEBUG_LL
-- 
2.19.2


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  parent reply	other threads:[~2018-11-29 11:31 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 11:30 [PATCH 00/15] Makefile: sync with linux v4.13 and add thin archives support Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 01/15] Makefile: replace LINUXINCLUDE with BAREBOXINCLUDE Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 02/15] Makefile: Correctly deal with make options which contain an "s" Steffen Trumtrar
2018-12-09 23:07   ` Roland Hieber
2018-11-29 11:30 ` [PATCH 03/15] scripts/Kbuild.include: Fix portability problem of "echo -e" Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 04/15] scripts/Kbuild.include: replace KBUILD_CPPFLAGS with CPPFLAGS Steffen Trumtrar
2018-12-05 12:22   ` Masahiro Yamada
2018-12-05 12:26     ` Masahiro Yamada
2018-12-06  7:54     ` Sascha Hauer
2018-11-29 11:30 ` Steffen Trumtrar [this message]
2018-11-29 11:30 ` [PATCH 06/15] Makefile: improve line wrapping Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 07/15] Makefile: link of barebox moved to script Steffen Trumtrar
2018-11-30  7:17   ` Sascha Hauer
2018-12-03  4:49   ` Sam Ravnborg
2018-12-04  7:56     ` Sascha Hauer
2018-11-29 11:30 ` [PATCH 08/15] scripts: link-barebox: fix bash-ism Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 09/15] scripts: link-barebox: force error on kallsyms failure Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 10/15] scripts: link-barebox: allow architectures to use thin archives instead of ld -r Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 11/15] scripts: link-barebox: kallsyms allow 3-pass generation Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 12/15] scripts: link-barebox: minor improvement for thin archives build Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 13/15] scripts: link-barebox: close thin archives --whole-archives option Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 14/15] scripts: link-barebox: thin archives use P option to ar Steffen Trumtrar
2018-11-29 11:30 ` [PATCH 15/15] ARM: Kconfig: select THIN_ARCHIVES for ARM Steffen Trumtrar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181129113048.31857-6-s.trumtrar@pengutronix.de \
    --to=s.trumtrar@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox