Messages in this thread | | | Date | Fri, 6 Jun 2014 10:08:59 -0700 | Subject | Re: "." in vmlinux.lds.S | From | Hán Shěn (沈涵) <> |
| |
A gentle ping?
On Tue, Jun 3, 2014 at 2:46 PM, Hán Shěn (沈涵) <shenhan@google.com> wrote: > Hi we are trying to boot up a x86_64 chrome book using binutils 2.24 and > kernel 3.8, but failed. > > After some triage work, we found that a 2-year-old binutil CL changed the > interpretation of "." in linker script (short story: absolute -> relative, > long story: https://sourceware.org/ml/binutils/2012-06/msg00155.html). > > After some further work, we are able to boot the kernel with a kernel patch > pasted at EOM. I am curious, why the upstream kernel is never hit by this > behavior? We enabled "CONFIG_DEBUG_RODATA", so we were hit, is this some > macro not usually turned on? > > Patch here ---- > diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S > index d329fc4..d5dc570 100644 > --- a/arch/x86/kernel/vmlinux.lds.S > +++ b/arch/x86/kernel/vmlinux.lds.S > @@ -58,7 +58,7 @@ jiffies_64 = jiffies; > > #define X64_ALIGN_DEBUG_RODATA_END \ > . = ALIGN(HPAGE_SIZE); \ > - __end_rodata_hpage_align = .; > + __end_rodata_hpage_align = ABSOLUTE(.); > > #else > > @@ -159,7 +159,7 @@ SECTIONS > #ifdef CONFIG_X86_64 > > . = ALIGN(PAGE_SIZE); > - __vvar_page = .; > + __vvar_page = ABSOLUTE(.); > > .vvar : AT(ADDR(.vvar) - LOAD_OFFSET) { > /* work around gold bug 13023 */ > @@ -325,7 +325,7 @@ SECTIONS > __brk_limit = .; > } > > - _end = .; > + _end = ABSOLUTE(.); > > STABS_DEBUG > DWARF_DEBUG >
-- Han Shen | Software Engineer | shenhan@google.com | +1-650-440-3330 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |