diff options
| author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 08:59:11 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 08:59:11 -0800 | 
| commit | 4522d58275f124105819723e24e912c8e5bf3cdd (patch) | |
| tree | b92c29014fadffe049c1925676037f0092b8d112 /scripts | |
| parent | 6cf24f031bc97cb5a7c9df3b6e73c45b628b2b28 (diff) | |
| parent | 64a26a731235b59c9d73bbe82c1f896d57400d37 (diff) | |
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
* 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6: (156 commits)
  [PATCH] x86-64: Export smp_call_function_single
  [PATCH] i386: Clean up smp_tune_scheduling()
  [PATCH] unwinder: move .eh_frame to RODATA
  [PATCH] unwinder: fully support linker generated .eh_frame_hdr section
  [PATCH] x86-64: don't use set_irq_regs()
  [PATCH] x86-64: check vector in setup_ioapic_dest to verify if need setup_IO_APIC_irq
  [PATCH] x86-64: Make ix86 default to HIGHMEM4G instead of NOHIGHMEM
  [PATCH] i386: replace kmalloc+memset with kzalloc
  [PATCH] x86-64: remove remaining pc98 code
  [PATCH] x86-64: remove unused variable
  [PATCH] x86-64: Fix constraints in atomic_add_return()
  [PATCH] x86-64: fix asm constraints in i386 atomic_add_return
  [PATCH] x86-64: Correct documentation for bzImage protocol v2.05
  [PATCH] x86-64: replace kmalloc+memset with kzalloc in MTRR code
  [PATCH] x86-64: Fix numaq build error
  [PATCH] x86-64: include/asm-x86_64/cpufeature.h isn't a userspace header
  [PATCH] unwinder: Add debugging output to the Dwarf2 unwinder
  [PATCH] x86-64: Clarify error message in GART code
  [PATCH] x86-64: Fix interrupt race in idle callback (3rd try)
  [PATCH] x86-64: Remove unwind stack pointer alignment forcing again
  ...
Fixed conflict in include/linux/uaccess.h manually
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/kallsyms.c | 24 | ||||
| -rw-r--r-- | scripts/mod/modpost.c | 2 | 
2 files changed, 23 insertions, 3 deletions
| diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c index 22d281c6ec24..f359b730c2c5 100644 --- a/scripts/kallsyms.c +++ b/scripts/kallsyms.c @@ -43,7 +43,7 @@ struct sym_entry {  static struct sym_entry *table;  static unsigned int table_size, table_cnt; -static unsigned long long _stext, _etext, _sinittext, _einittext, _sextratext, _eextratext; +static unsigned long long _text, _stext, _etext, _sinittext, _einittext, _sextratext, _eextratext;  static int all_symbols = 0;  static char symbol_prefix_char = '\0'; @@ -91,7 +91,9 @@ static int read_symbol(FILE *in, struct sym_entry *s)  		sym++;  	/* Ignore most absolute/undefined (?) symbols. */ -	if (strcmp(sym, "_stext") == 0) +	if (strcmp(sym, "_text") == 0) +		_text = s->addr; +	else if (strcmp(sym, "_stext") == 0)  		_stext = s->addr;  	else if (strcmp(sym, "_etext") == 0)  		_etext = s->addr; @@ -265,9 +267,25 @@ static void write_src(void)  	printf(".data\n"); +	/* Provide proper symbols relocatability by their '_text' +	 * relativeness.  The symbol names cannot be used to construct +	 * normal symbol references as the list of symbols contains +	 * symbols that are declared static and are private to their +	 * .o files.  This prevents .tmp_kallsyms.o or any other +	 * object from referencing them. +	 */  	output_label("kallsyms_addresses");  	for (i = 0; i < table_cnt; i++) { -		printf("\tPTR\t%#llx\n", table[i].addr); +		if (toupper(table[i].sym[0]) != 'A') { +			if (_text <= table[i].addr) +				printf("\tPTR\t_text + %#llx\n", +					table[i].addr - _text); +			else +				printf("\tPTR\t_text - %#llx\n", +					_text - table[i].addr); +		} else { +			printf("\tPTR\t%#llx\n", table[i].addr); +		}  	}  	printf("\n"); diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 2e1141623147..ac0a58222992 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -911,6 +911,7 @@ static int init_section_ref_ok(const char *name)  		".toc1",  /* used by ppc64 */  		".stab",  		".rodata", +		".parainstructions",  		".text.lock",  		"__bug_table", /* used by powerpc for BUG() */  		".pci_fixup_header", @@ -931,6 +932,7 @@ static int init_section_ref_ok(const char *name)  		".altinstructions",  		".eh_frame",  		".debug", +		".parainstructions",  		NULL  	};  	/* part of section name */ | 
