[PATCH] ftrace: Align __mcount_loc sections

From: Matt Fleming
Date: Fri Nov 07 2008 - 08:26:25 EST


Align the __mcount_loc sections so that architectures with strict
alignment requirements need not worry about performing unaligned
accesses.

This fixes an issue where I was seeing unaligned accesses, which are not
supported on our architecture (the results of an unaligned access are
undefined).

Signed-off-by: Matt Fleming <matthew.fleming@xxxxxxxxxx>
---
scripts/recordmcount.pl | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 6b9fe3e..2d0bfa1 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -134,6 +134,7 @@ my $section_regex; # Find the start of a section
my $function_regex; # Find the name of a function
# (return offset and func name)
my $mcount_regex; # Find the call site to mcount (return offset)
+my $alignment; # The .align value to use for $mcount_section

if ($arch eq "x86") {
if ($bits == 64) {
@@ -148,6 +149,7 @@ if ($arch eq "x86_64") {
$function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:";
$mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount([+-]0x[0-9a-zA-Z]+)?\$";
$type = ".quad";
+ $alignment = 8;

# force flags for this arch
$ld .= " -m elf_x86_64";
@@ -160,6 +162,7 @@ if ($arch eq "x86_64") {
$function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:";
$mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount\$";
$type = ".long";
+ $alignment = 4;

# force flags for this arch
$ld .= " -m elf_i386";
@@ -288,6 +291,7 @@ sub update_funcs
open(FILE, ">$mcount_s") || die "can't create $mcount_s\n";
$opened = 1;
print FILE "\t.section $mcount_section,\"a\",\@progbits\n";
+ print FILE "\t.align $alignment\n";
}
printf FILE "\t%s %s + %d\n", $type, $ref_func, $offsets[$i] - $offset;
}
--
1.5.6.4

------=_Part_28270_2851883.1226066379088
Content-Type: text/x-diff;
name=0001-ftrace-Align-__mcount_loc-sections.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fn8w88170
Content-Disposition: attachment;
filename=0001-ftrace-Align-__mcount_loc-sections.patch

RnJvbSA0MTYxYzhiMmExZTVjOTMxNDZmYzZlOWE2MzhjMDE4YTE0NjQ4YzZiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IEZsZW1pbmcgPG1hdHRoZXcuZmxlbWluZ0BpbWd0ZWMu
Y29tPgpEYXRlOiBGcmksIDcgTm92IDIwMDggMTM6MjY6MjUgKzAwMDAKU3ViamVjdDogW1BBVENI
XSBmdHJhY2U6IEFsaWduIF9fbWNvdW50X2xvYyBzZWN0aW9ucwoKQWxpZ24gdGhlIF9fbWNvdW50
X2xvYyBzZWN0aW9ucyBzbyB0aGF0IGFyY2hpdGVjdHVyZXMgd2l0aCBzdHJpY3QKYWxpZ25tZW50
IHJlcXVpcmVtZW50cyBuZWVkIG5vdCB3b3JyeSBhYm91dCBwZXJmb3JtaW5nIHVuYWxpZ25lZAph
Y2Nlc3Nlcy4KClRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgSSB3YXMgc2VlaW5nIHVuYWxpZ25l
ZCBhY2Nlc3Nlcywgd2hpY2ggYXJlIG5vdApzdXBwb3J0ZWQgb24gb3VyIGFyY2hpdGVjdHVyZSAo
dGhlIHJlc3VsdHMgb2YgYW4gdW5hbGlnbmVkIGFjY2VzcyBhcmUKdW5kZWZpbmVkKS4KClNpZ25l
ZC1vZmYtYnk6IE1hdHQgRmxlbWluZyA8bWF0dGhldy5mbGVtaW5nQGltZ3RlYy5jb20+Ci0tLQog
c2NyaXB0cy9yZWNvcmRtY291bnQucGwgfCAgICA0ICsrKysKIDEgZmlsZXMgY2hhbmdlZCwgNCBp
bnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMvcmVjb3Jk
bWNvdW50LnBsIGIvc2NyaXB0cy9yZWNvcmRtY291bnQucGwKaW5kZXggNmI5ZmUzZS4uMmQwYmZh
MSAxMDA3NTUKLS0tIGEvc2NyaXB0cy9yZWNvcmRtY291bnQucGwKKysrIGIvc2NyaXB0cy9yZWNv
cmRtY291bnQucGwKQEAgLTEzNCw2ICsxMzQsNyBAQCBteSAkc2VjdGlvbl9yZWdleDsJIyBGaW5k
IHRoZSBzdGFydCBvZiBhIHNlY3Rpb24KIG15ICRmdW5jdGlvbl9yZWdleDsJIyBGaW5kIHRoZSBu
YW1lIG9mIGEgZnVuY3Rpb24KIAkJCSMgICAgKHJldHVybiBvZmZzZXQgYW5kIGZ1bmMgbmFtZSkK
IG15ICRtY291bnRfcmVnZXg7CSMgRmluZCB0aGUgY2FsbCBzaXRlIHRvIG1jb3VudCAocmV0dXJu
IG9mZnNldCkKK215ICRhbGlnbm1lbnQ7CQkjIFRoZSAuYWxpZ24gdmFsdWUgdG8gdXNlIGZvciAk
bWNvdW50X3NlY3Rpb24KIAogaWYgKCRhcmNoIGVxICJ4ODYiKSB7CiAgICAgaWYgKCRiaXRzID09
IDY0KSB7CkBAIC0xNDgsNiArMTQ5LDcgQEAgaWYgKCRhcmNoIGVxICJ4ODZfNjQiKSB7CiAgICAg
JGZ1bmN0aW9uX3JlZ2V4ID0gIl4oWzAtOWEtZkEtRl0rKVxccys8KC4qPyk+OiI7CiAgICAgJG1j
b3VudF9yZWdleCA9ICJeXFxzKihbMC05YS1mQS1GXSspOi4qXFxzbWNvdW50KFsrLV0weFswLTlh
LXpBLVpdKyk/XCQiOwogICAgICR0eXBlID0gIi5xdWFkIjsKKyAgICAkYWxpZ25tZW50ID0gODsK
IAogICAgICMgZm9yY2UgZmxhZ3MgZm9yIHRoaXMgYXJjaAogICAgICRsZCAuPSAiIC1tIGVsZl94
ODZfNjQiOwpAQCAtMTYwLDYgKzE2Miw3IEBAIGlmICgkYXJjaCBlcSAieDg2XzY0IikgewogICAg
ICRmdW5jdGlvbl9yZWdleCA9ICJeKFswLTlhLWZBLUZdKylcXHMrPCguKj8pPjoiOwogICAgICRt
Y291bnRfcmVnZXggPSAiXlxccyooWzAtOWEtZkEtRl0rKTouKlxcc21jb3VudFwkIjsKICAgICAk
dHlwZSA9ICIubG9uZyI7CisgICAgJGFsaWdubWVudCA9IDQ7CiAKICAgICAjIGZvcmNlIGZsYWdz
IGZvciB0aGlzIGFyY2gKICAgICAkbGQgLj0gIiAtbSBlbGZfaTM4NiI7CkBAIC0yODgsNiArMjkx
LDcgQEAgc3ViIHVwZGF0ZV9mdW5jcwogCSAgICBvcGVuKEZJTEUsICI+JG1jb3VudF9zIikgfHwg
ZGllICJjYW4ndCBjcmVhdGUgJG1jb3VudF9zXG4iOwogCSAgICAkb3BlbmVkID0gMTsKIAkgICAg
cHJpbnQgRklMRSAiXHQuc2VjdGlvbiAkbWNvdW50X3NlY3Rpb24sXCJhXCIsXEBwcm9nYml0c1xu
IjsKKwkgICAgcHJpbnQgRklMRSAiXHQuYWxpZ24gJGFsaWdubWVudFxuIjsKIAl9CiAJcHJpbnRm
IEZJTEUgIlx0JXMgJXMgKyAlZFxuIiwgJHR5cGUsICRyZWZfZnVuYywgJG9mZnNldHNbJGldIC0g
JG9mZnNldDsKICAgICB9Ci0tIAoxLjUuNi40Cgo=
------=_Part_28270_2851883.1226066379088--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/