* [patch] s390: setup.c cleanup + build fix
@ 2006-06-23 13:31 Heiko Carstens
2006-06-24 6:15 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: Heiko Carstens @ 2006-06-23 13:31 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, Martin Schwidefsky
From: Heiko Carstens <heiko.carstens@de.ibm.com>
Cleanup & fix 31 bit compilation:
CC arch/s390/kernel/setup.o
arch/s390/kernel/setup.c:83: error: initializer element is not computable at
load time
arch/s390/kernel/setup.c:83: error: (near initialization for
'code_resource.start')
Not sure which patch in the -mm tree breaks this, but since this can be
considered a cleanup it can be merged anyway.
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
---
Patch is against 2.6.17-mm1.
arch/s390/kernel/setup.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
Index: linux-2.6.17-mm1/arch/s390/kernel/setup.c
===================================================================
--- linux-2.6.17-mm1.orig/arch/s390/kernel/setup.c
+++ linux-2.6.17-mm1/arch/s390/kernel/setup.c
@@ -47,6 +47,7 @@
#include <asm/irq.h>
#include <asm/page.h>
#include <asm/ptrace.h>
+#include <asm/sections.h>
/*
* Machine setup..
@@ -66,11 +67,6 @@ unsigned long __initdata zholes_size[MAX
static unsigned long __initdata memory_end;
/*
- * Setup options
- */
-extern int _text,_etext, _edata, _end;
-
-/*
* This is set up by the setup-routine at boot-time
* for S390 need to find out, what we have to setup
* using address 0x10400 ...
@@ -80,15 +76,11 @@ extern int _text,_etext, _edata, _end;
static struct resource code_resource = {
.name = "Kernel code",
- .start = (unsigned long) &_text,
- .end = (unsigned long) &_etext - 1,
.flags = IORESOURCE_BUSY | IORESOURCE_MEM,
};
static struct resource data_resource = {
.name = "Kernel data",
- .start = (unsigned long) &_etext,
- .end = (unsigned long) &_edata - 1,
.flags = IORESOURCE_BUSY | IORESOURCE_MEM,
};
@@ -422,6 +414,11 @@ setup_resources(void)
struct resource *res;
int i;
+ code_resource.start = (unsigned long) &_text;
+ code_resource.end = (unsigned long) &_etext - 1;
+ data_resource.start = (unsigned long) &_etext;
+ data_resource.end = (unsigned long) &_edata - 1;
+
for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) {
res = alloc_bootmem_low(sizeof(struct resource));
res->flags = IORESOURCE_BUSY | IORESOURCE_MEM;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] s390: setup.c cleanup + build fix
2006-06-23 13:31 [patch] s390: setup.c cleanup + build fix Heiko Carstens
@ 2006-06-24 6:15 ` Andrew Morton
2006-06-24 7:45 ` Heiko Carstens
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2006-06-24 6:15 UTC (permalink / raw)
To: Heiko Carstens; +Cc: linux-kernel, schwidefsky
On Fri, 23 Jun 2006 15:31:22 +0200
Heiko Carstens <heiko.carstens@de.ibm.com> wrote:
> From: Heiko Carstens <heiko.carstens@de.ibm.com>
>
> Cleanup & fix 31 bit compilation:
>
> CC arch/s390/kernel/setup.o
> arch/s390/kernel/setup.c:83: error: initializer element is not computable at
> load time
> arch/s390/kernel/setup.c:83: error: (near initialization for
> 'code_resource.start')
> Not sure which patch in the -mm tree breaks this, but since this can be
> considered a cleanup it can be merged anyway.
>
That's strange.
> /*
> - * Setup options
> - */
> -extern int _text,_etext, _edata, _end;
> -
> -/*
> * This is set up by the setup-routine at boot-time
> * for S390 need to find out, what we have to setup
> * using address 0x10400 ...
> @@ -80,15 +76,11 @@ extern int _text,_etext, _edata, _end;
>
> static struct resource code_resource = {
> .name = "Kernel code",
> - .start = (unsigned long) &_text,
> - .end = (unsigned long) &_etext - 1,
> .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
> };
>
> static struct resource data_resource = {
> .name = "Kernel data",
> - .start = (unsigned long) &_etext,
> - .end = (unsigned long) &_edata - 1,
> .flags = IORESOURCE_BUSY | IORESOURCE_MEM,
> };
>
> @@ -422,6 +414,11 @@ setup_resources(void)
> struct resource *res;
> int i;
>
> + code_resource.start = (unsigned long) &_text;
> + code_resource.end = (unsigned long) &_etext - 1;
> + data_resource.start = (unsigned long) &_etext;
> + data_resource.end = (unsigned long) &_edata - 1;
> +
> for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) {
> res = alloc_bootmem_low(sizeof(struct resource));
> res->flags = IORESOURCE_BUSY | IORESOURCE_MEM;
The linker should be able to handle all that. I wonder why it didn't.
And it works for me. What is "31 bit compilation"?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] s390: setup.c cleanup + build fix
2006-06-24 6:15 ` Andrew Morton
@ 2006-06-24 7:45 ` Heiko Carstens
0 siblings, 0 replies; 3+ messages in thread
From: Heiko Carstens @ 2006-06-24 7:45 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, schwidefsky
> > CC arch/s390/kernel/setup.o
> > arch/s390/kernel/setup.c:83: error: initializer element is not computable at
> > load time
> > arch/s390/kernel/setup.c:83: error: (near initialization for
> > 'code_resource.start')
> > Not sure which patch in the -mm tree breaks this, but since this can be
> > considered a cleanup it can be merged anyway.
> >
>
> That's strange.
Indeed.
> The linker should be able to handle all that. I wonder why it didn't.
>
> And it works for me. What is "31 bit compilation"?
Switching off CONFIG_64BIT, so that you will get a 31 bit binary.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-06-24 7:46 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-23 13:31 [patch] s390: setup.c cleanup + build fix Heiko Carstens
2006-06-24 6:15 ` Andrew Morton
2006-06-24 7:45 ` Heiko Carstens
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox