linux/include/asm-generic
Vivek Goyal 6569580de7 [PATCH] i386: Distinguish absolute symbols
Ld knows about 2 kinds of symbols,  absolute and section
relative.  Section relative symbols symbols change value
when a section is moved and absolute symbols do not.

Currently in the linker script we have several labels
marking the beginning and ending of sections that
are outside of sections, making them absolute symbols.
Having a mixture of absolute and section relative
symbols refereing to the same data is currently harmless
but it is confusing.

This must be done carefully as newer revs of ld do not place
symbols that appear in sections without data and instead
ld makes those symbols global :(

My ultimate goal is to build a relocatable kernel.  The
safest and least intrusive technique is to generate
relocation entries so the kernel can be relocated at load
time.  The only penalty would be an increase in the size
of the kernel binary.  The problem is that if absolute and
relocatable symbols are not properly specified absolute symbols
will be relocated or section relative symbols won't be, which
is fatal.

The practical motivation is that when generating kernels that
will run from a reserved area for analyzing what caused
a kernel panic, it is simpler if you don't need to hard code
the physical memory location they will run at, especially
for the distributions.

[AK: and merged:]

o Also put a message so that in future people can be aware of it and
  avoid introducing absolute symbols.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
2006-12-07 02:14:03 +01:00
..
bitops [PATCH] sched: likely profiling 2006-10-11 11:14:22 -07:00
4level-fixup.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
atomic.h [PATCH] Use atomic64_set for 64-bit case of atomic_long_set 2006-01-15 10:17:07 -08:00
audit_change_attr.h [PATCH] fix missing ifdefs in syscall classes hookup for generic targets 2006-09-22 17:48:56 -07:00
audit_dir_write.h [PATCH] fix missing ifdefs in syscall classes hookup for generic targets 2006-09-22 17:48:56 -07:00
audit_read.h [PATCH] audit: more syscall classes added 2006-09-11 13:32:27 -04:00
audit_write.h [PATCH] audit: more syscall classes added 2006-09-11 13:32:27 -04:00
bitops.h [PATCH] bitops: update include/asm-generic/bitops.h 2006-03-26 08:57:15 -08:00
bug.h [PATCH] Fix warnings for WARN_ON if CONFIG_BUG is disabled 2006-10-20 10:26:38 -07:00
cputime.h [CPUFREQ] Remove slowdown from ondemand sampling path. 2006-06-30 01:29:47 -04:00
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
div64.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma-mapping-broken.h [PATCH] gfp_t: dma-mapping (simple cases) 2005-10-28 08:16:49 -07:00
dma-mapping.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno-base.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
errno.h [PATCH] add EOWNERDEAD and ENOTRECOVERABLE version 2 2005-05-01 08:59:06 -07:00
fcntl.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
futex.h [PATCH] lightweight robust futexes updates 2006-03-27 08:44:49 -08:00
ide_iops.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl.h [PATCH] Generic ioctl.h 2006-01-10 08:01:34 -08:00
iomap.h [PATCH] add Big Endian variants of ioread/iowrite 2005-04-16 15:25:54 -07:00
ipc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
Kbuild [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00
Kbuild.asm [HEADERS] One line per header in Kbuild files to reduce conflicts 2006-09-19 12:43:58 +01:00
libata-portmap.h [PATCH] libata: rework legacy handling to remove much of the cruft 2006-08-10 16:59:10 +09:00
local.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
memory_model.h [PATCH] squash duplicate page_to_pfn and pfn_to_page 2006-06-23 07:42:47 -07:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mutex-dec.h fix file specification in comments 2006-10-03 23:01:26 +02:00
mutex-null.h fix file specification in comments 2006-10-03 23:01:26 +02:00
mutex-xchg.h fix file specification in comments 2006-10-03 23:01:26 +02:00
page.h [PATCH] mm: consolidate get_order 2005-09-05 00:05:39 -07:00
pci-dma-compat.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.h [PATCH] Make sparc64 use setup-res.c 2005-09-08 14:57:25 -07:00
percpu.h [PATCH] Fix typo in "syntax error if percpu macros are incorrectly used" patch 2006-10-06 08:53:41 -07:00
pgtable-nopmd.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
pgtable-nopud.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
pgtable.h [PATCH] paravirt: remove set pte atomic 2006-10-01 00:39:34 -07:00
resource.h [PATCH] nice and rt-prio rlimits 2005-05-01 08:59:00 -07:00
rtc.h fix file specification in comments 2006-10-03 23:01:26 +02:00
sections.h [PATCH] add __[start|end]_rodata sections to asm-generic/sections.h 2006-07-01 09:56:03 -07:00
siginfo.h [PATCH] consolidate SIGEV_PAD_SIZE 2005-05-01 08:59:08 -07:00
signal.h Add standard include guard to asm-generic/signal and use compiler.h 2006-04-27 06:57:23 +01:00
statfs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
termios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlb.h fix file specification in comments 2006-10-03 23:01:26 +02:00
topology.h [PATCH] x86/x86_64: pcibus_to_node 2005-06-23 09:45:08 -07:00
uaccess.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unaligned.h [PATCH] __get_unaligned() gcc-4 fix 2006-03-08 14:14:00 -08:00
vmlinux.lds.h [PATCH] i386: Distinguish absolute symbols 2006-12-07 02:14:03 +01:00
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00