From: Paul Mundt <lethal@linux-sh.org>
To: Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org
Subject: Detecting endianness in scripts/recordmcount.pl?
Date: Wed, 26 Nov 2008 17:39:05 +0900 [thread overview]
Message-ID: <20081126083905.GA20472@linux-sh.org> (raw)
Presently there doesn't seem to be any way to determine whether the
target is big or little endian, and it is assumed that the compiler will
do the right thing by default. Unfortunately this can not be assumed,
and mismatches ensue, resulting in the linker bailing out.
The only obvious solution I saw was to pass in KBUILD_CFLAGS and ld_flags
along with $(CC) and $(LD) to the script, and killing off the hardcoded
flags. This at least gets things building, but that still leaves objcopy
and objdump as the odd ones out. On the other hand, the format can be figured
out by objdumping the object and reading in the file format line, but people
obviously do not have consistent naming for these, and a double-pass would
be needed -- once for establishing little or big, followed by figuring out
which set of regexes to use.
The CONFIG_64BIT test could likewise be adopted for testing endianness, but
not all architectures have config options for endian selections. Likewise, a
simple test program to check if __LITTLE_ENDIAN is set or not won't work
without having knowledge of KBUILD_CFLAGS, in which case it seems saner just
to pass it off as a starting point.
Any better ideas?
---
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 7a17677..de2cc42 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -201,7 +201,8 @@ endif
ifdef CONFIG_FTRACE_MCOUNT_RECORD
cmd_record_mcount = perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
"$(if $(CONFIG_64BIT),64,32)" \
- "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" "$(MV)" "$(@)";
+ "$(OBJDUMP)" "$(OBJCOPY)" "$(CC) $(KBUILD_CFLAGS)" \
+ "$(LD) $(ld_flags)" "$(NM)" "$(RM)" "$(MV)" "$(@)";
endif
define rule_cc_o_c
next reply other threads:[~2008-11-26 8:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-26 8:39 Paul Mundt [this message]
2008-11-26 9:17 ` Detecting endianness in scripts/recordmcount.pl? Paul Mundt
2008-11-26 12:24 ` Steven Rostedt
2008-11-26 13:54 ` Sam Ravnborg
2008-11-26 17:13 ` Steven Rostedt
2008-11-26 17:39 ` Sam Ravnborg
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=20081126083905.GA20472@linux-sh.org \
--to=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.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