This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Thu, Dec 16, 2010 at 4:01 PM, Alan Modra <amodra@gmail.com> wrote: > On Thu, Dec 16, 2010 at 03:14:38PM -0800, H.J. Lu wrote: >> Your patch doesn't work. I got >> >> ./ld: kernel image bigger than KERNEL_IMAGE_SIZE >> >> due to arch/x86/kernel/vmlinux.lds: >> >> ---- >> /* >> ?* Build-time check on the image size: >> ?*/ >> . = ASSERT((_end - _text <= (512 * 1024 * 1024)), >> ? ? "kernel image bigger than KERNEL_IMAGE_SIZE"); > > Extracting the relevant parts from the kernel link script: > > SECTIONS > { > ?. = 0xc000; > ?.text : > ?{ > ? ?_text = .; > ? ?*(.text) > ?} > ?_end = .; > } > ASSERT (_end - _text <= 0x100, "fail"); > > You'd think that under the new rules, this ought to work. ?"_end" is > an absolute address, so when evaluating "_end - _text", "_text" ought > to be converted from relative to absolute, the subtraction resuling in > an absolute address. ?Then 0x100 gets converted from a number to > absolute address before being compared. > > The trouble is that "_end" is *not* treated as an absolute address but > as a plain number. ?That makes ld convert "_end" to a .text relative > address when evaluation "_end - _text", which doesn't cause a problem > at that stage, but the result is a relative address. ?That means 0x100 > is converted to a .text relative address too, which gives the wrong > result. > > The underlying problem is that we don't distinguish between plain > numbers and absolute addresses once values are stored in symbols. > I am putting this into the Linux binutils. -- H.J. --- ld/ 2010-12-16 H.J. Lu <hongjiu.lu@intel.com> PR ld/12327 * ldexp.c (exp_fold_tree_1): Only make absolute symbol value absolute. ld/testsuite/ 2010-12-16 H.J. Lu <hongjiu.lu@intel.com> PR ld/12327 * ld-scripts/defined.exp: Run defined4. * ld-scripts/defined4.d: New. * ld-scripts/defined4.s: Likewise. * ld-scripts/defined4.t: Likewise.
Attachment:
binutils-pr12327-1.patch
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |