public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Compile error on 2.6.10-rc1-mm1
@ 2004-10-29  9:37 Hariprasad Nellitheertha
  2004-10-29  9:43 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Hariprasad Nellitheertha @ 2004-10-29  9:37 UTC (permalink / raw)
  To: Andrew Morton, linux-kernel; +Cc: ebiederm, Vara Prasad, fastboot

[-- Attachment #1: Type: text/plain, Size: 1096 bytes --]

Hi Andrew,

The compile time error that few people have been seeing with 
the last couple of -mm releases are due to the changes 
introduced to arch/i386/kernel/vmlinux.lds.S to enable kexec 
based crashdumps. Since fixing this error needs an upgrade 
of the binutils package on those machines, I was looking at 
a possible workaround within the kernel code itself.

The problem seems to arise from the fact that the 
.bss.page_aligned section (defined in head.S) is included 
within the .bss section. Older binutils does not export the 
proper physical address (LMA) for the .bss section. I made a 
patch which moves the .bss.page_aligned section to just 
before the .bss section. This compiles fine with both older 
and newer binutils packages. I have done some amount of 
testing with this change and it has not thrown up any problems.

I am not completely sure though if this does not have any 
side effects.  Could you kindly review this patch and let me 
know if it looks ok.

If we can use this patch, it will spare us from having to 
upgrade to the newer binutils package.

Regards, Hari

[-- Attachment #2: kdump-fix-bss-compile-error.patch --]
[-- Type: text/plain, Size: 779 bytes --]



Signed-off-by: Hariprasad Nellitheertha <hari@in.ibm.com>
---

 linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletion(-)

diff -puN arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error arch/i386/kernel/vmlinux.lds.S
--- linux-2.6.10-rc1/arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error	2004-10-28 15:15:43.000000000 +0530
+++ linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S	2004-10-28 15:18:04.000000000 +0530
@@ -117,8 +117,9 @@ SECTIONS
   /* freed after init ends here */
 	
   __bss_start = .;		/* BSS */
+  .bss.page_aligned  : AT(ADDR(.bss.page_aligned) - LOAD_OFFSET) {
+	*(.bss.page_aligned) }
   .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
-	*(.bss.page_aligned)
 	*(.bss)
   }
   . = ALIGN(4);
_

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Compile error on 2.6.10-rc1-mm1
  2004-10-29  9:37 Compile error on 2.6.10-rc1-mm1 Hariprasad Nellitheertha
@ 2004-10-29  9:43 ` Andrew Morton
  2004-10-29 10:51   ` Hariprasad Nellitheertha
  0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2004-10-29  9:43 UTC (permalink / raw)
  To: Hariprasad Nellitheertha; +Cc: linux-kernel, ebiederm, varap, fastboot

Hariprasad Nellitheertha <hari@in.ibm.com> wrote:
>
> The compile time error that few people have been seeing with 
>  the last couple of -mm releases are due to the changes 
>  introduced to arch/i386/kernel/vmlinux.lds.S to enable kexec 
>  based crashdumps.
> ...
>  --- linux-2.6.10-rc1/arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error	2004-10-28 15:15:43.000000000 +0530
>  +++ linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S	2004-10-28 15:18:04.000000000 +0530
>  @@ -117,8 +117,9 @@ SECTIONS
>     /* freed after init ends here */
>   	
>     __bss_start = .;		/* BSS */
>  +  .bss.page_aligned  : AT(ADDR(.bss.page_aligned) - LOAD_OFFSET) {
>  +	*(.bss.page_aligned) }
>     .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
>  -	*(.bss.page_aligned)
>   	*(.bss)
>     }
>     . = ALIGN(4);

It's hard to see how that could go wrong.  Did you compare the before- and
after- output from `objdump -h vmlinux'?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Compile error on 2.6.10-rc1-mm1
  2004-10-29  9:43 ` Andrew Morton
@ 2004-10-29 10:51   ` Hariprasad Nellitheertha
  0 siblings, 0 replies; 3+ messages in thread
From: Hariprasad Nellitheertha @ 2004-10-29 10:51 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, ebiederm, varap, fastboot

Andrew Morton wrote:
> Hariprasad Nellitheertha <hari@in.ibm.com> wrote:
> 
>>The compile time error that few people have been seeing with 
>> the last couple of -mm releases are due to the changes 
>> introduced to arch/i386/kernel/vmlinux.lds.S to enable kexec 
>> based crashdumps.
>>...
>> --- linux-2.6.10-rc1/arch/i386/kernel/vmlinux.lds.S~kdump-fix-bss-compile-error	2004-10-28 15:15:43.000000000 +0530
>> +++ linux-2.6.10-rc1-hari/arch/i386/kernel/vmlinux.lds.S	2004-10-28 15:18:04.000000000 +0530
>> @@ -117,8 +117,9 @@ SECTIONS
>>    /* freed after init ends here */
>>  	
>>    __bss_start = .;		/* BSS */
>> +  .bss.page_aligned  : AT(ADDR(.bss.page_aligned) - LOAD_OFFSET) {
>> +	*(.bss.page_aligned) }
>>    .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
>> -	*(.bss.page_aligned)
>>  	*(.bss)
>>    }
>>    . = ALIGN(4);
> 
> 
> It's hard to see how that could go wrong.  Did you compare the before- and
> after- output from `objdump -h vmlinux'?
> 

The output of objdump for the bss related sections are as below..

Without patch - machine with newer binutils

  24 .bss          0002cf38  c03df000  003df000  002df000  2**12
                   ALLOC

With patch - machine with newer binutils

  24 .bss.page_aligned 00002000  c03df000  c03df000  002df000  2**2

  25 .bss          0002af38  c03e1000  003e1000  002df000  2**12
                   ALLOC

With patch - machine with old binutils

  24 .bss.page_aligned 00002000  c03df000  c03df000  002df000  2**2
                   CONTENTS
  25 .bss          0002af38  c03e1000  003e1000  002df000  2**12
                   ALLOC

Regards, Hari

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-10-29 10:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-29  9:37 Compile error on 2.6.10-rc1-mm1 Hariprasad Nellitheertha
2004-10-29  9:43 ` Andrew Morton
2004-10-29 10:51   ` Hariprasad Nellitheertha

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox