diff options
Diffstat (limited to 'scripts/recordmcount.pl')
-rwxr-xr-x | scripts/recordmcount.pl | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl index 56ea99a12ab7..826470d7f000 100755 --- a/scripts/recordmcount.pl +++ b/scripts/recordmcount.pl | |||
@@ -242,8 +242,13 @@ if ($arch eq "x86_64") { | |||
242 | $cc .= " -m32"; | 242 | $cc .= " -m32"; |
243 | 243 | ||
244 | } elsif ($arch eq "s390" && $bits == 64) { | 244 | } elsif ($arch eq "s390" && $bits == 64) { |
245 | $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_390_(PC|PLT)32DBL\\s+_mcount\\+0x2\$"; | 245 | if ($cc =~ /-DCC_USING_HOTPATCH/) { |
246 | $mcount_adjust = -14; | 246 | $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*c0 04 00 00 00 00\\s*brcl\\s*0,[0-9a-f]+ <([^\+]*)>\$"; |
247 | $mcount_adjust = 0; | ||
248 | } else { | ||
249 | $mcount_regex = "^\\s*([0-9a-fA-F]+):\\s*R_390_(PC|PLT)32DBL\\s+_mcount\\+0x2\$"; | ||
250 | $mcount_adjust = -14; | ||
251 | } | ||
247 | $alignment = 8; | 252 | $alignment = 8; |
248 | $type = ".quad"; | 253 | $type = ".quad"; |
249 | $ld .= " -m elf64_s390"; | 254 | $ld .= " -m elf64_s390"; |
@@ -255,7 +260,6 @@ if ($arch eq "x86_64") { | |||
255 | # force flags for this arch | 260 | # force flags for this arch |
256 | $ld .= " -m shlelf_linux"; | 261 | $ld .= " -m shlelf_linux"; |
257 | $objcopy .= " -O elf32-sh-linux"; | 262 | $objcopy .= " -O elf32-sh-linux"; |
258 | $cc .= " -m32"; | ||
259 | 263 | ||
260 | } elsif ($arch eq "powerpc") { | 264 | } elsif ($arch eq "powerpc") { |
261 | $local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)"; | 265 | $local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)"; |