lkml.org 
[lkml]   [2008]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 0/3] ftrace: handle kernel code remove

* Ingo Molnar <mingo@elte.hu> wrote:

> > the problem is that i'm building a 32-bit kernel on a 64-bit host,
> > and the scripts/recordmcount.pl script does not create the temporary
> > object files in the proper (32-bit) output ELF format.
>
> the crude hack below got me going for now - but this needs a proper
> solution.

updated hack - it now works on 64-bit too.

( Btw., whoever came up with those fantastic variations of BFD,
architecture name and ELF format names and sprinkled them around
various tools with different command line switches and variants and
underscore versus dash names, must not be let near any serious
open-source code base again, until the end of his life. )

Ingo

------------->
From 9f982af9fb45c438415c2c411cda0d8f1e5f1bb7 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Mon, 9 Jun 2008 20:54:22 +0200
Subject: [PATCH] ftrace: scripts/recordmcount.pl cross-build hack

hack around:

ld: Relocatable linking with relocations from format elf32-i386 (init/.tmp_gl_calibrate.o) to format elf64-x86-64 (init/.tmp_mx_calibrate.o) i CC arch/x86/mm/extable.o
objcopy: 'init/.tmp_mx_calibrate.o': No such file
rm: cannot remove `init/.tmp_mx_calibrate.o': No such file or directory
ld: Relocatable linking with relocations from format elf32-i386 (arch/x86/mm/extable.o) to format elf64-x86-64 (arch/x86/mm/.tmp_mx_extable.o) is not supported
mv: cannot stat `arch/x86/mm/.tmp_mx_extable.o': No such file or directory
ld: Relocatable linking with relocations from format elf32-i386 (arch/x86/mm/fault.o) to format elf64-x86-64 (arch/x86/mm/.tmp_mx_fault.o) is not supported

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
scripts/recordmcount.pl | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 44b4b23..e4922a6 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -108,6 +108,20 @@ if ($#ARGV < 6) {

my ($arch, $objdump, $objcopy, $cc, $ld, $nm, $rm, $mv, $inputfile) = @ARGV;

+if ($arch eq "i386") {
+ $ld = "ld -m elf_i386";
+ $objdump = "objdump -M i386";
+ $objcopy = "objcopy -O elf32-i386";
+ $cc = "gcc -m32";
+}
+
+if ($arch eq "x86_64") {
+ $ld = "ld -m elf_x86_64";
+ $objdump = "objdump -M x86-64";
+ $objcopy = "objcopy -O elf64-x86-64";
+ $cc = "gcc -m64";
+}
+
$objdump = "objdump" if ((length $objdump) == 0);
$objcopy = "objcopy" if ((length $objcopy) == 0);
$cc = "gcc" if ((length $cc) == 0);

\
 
 \ /
  Last update: 2008-08-15 12:17    [W:0.048 / U:0.228 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site