The MIPS Makefile was changed so that the offset of data section
may not be dependent on a specific machine header file.
Signed-off-by: Yoichi Yuasa <[email protected]>
diff -urN -X dontdiff a-orig/arch/mips/Makefile a/arch/mips/Makefile
--- a-orig/arch/mips/Makefile Tue Oct 19 06:53:06 2004
+++ a/arch/mips/Makefile Tue Oct 19 23:33:51 2004
@@ -527,6 +527,7 @@
#load-$(CONFIG_SGI_IP27) += 0xa80000000001c000
ifdef CONFIG_MAPPED_KERNEL
load-$(CONFIG_SGI_IP27) += 0xc001c000
+dataoffset-$(CONFIG_SGI_IP27) += 0x01000000
else
load-$(CONFIG_SGI_IP27) += 0x8001c000
endif
@@ -625,6 +626,15 @@
endif
#
+# If you need data offset, please set up as follows.
+#
+# dataoffset-$(CONFIG_FOO) := <data offset value>
+#
+
+DATAOFFSET := $(shell if [ -z $(dataoffset-y) ] ; then echo "0"; \
+ else echo $(dataoffset-y); fi ;)
+
+#
# Some machines like the Indy need 32-bit ELF binaries for booting purposes.
# Other need ECOFF, so we build a 32-bit ELF binary for them which we then
# convert to ECOFF using elf2ecoff.
@@ -644,7 +654,7 @@
CPPFLAGS_vmlinux.lds := \
-D"LOADADDR=$(load-y)" \
-D"JIFFIES=$(JIFFIES)" \
- -imacros $(srctree)/include/asm-$(ARCH)/sn/mapped_kernel.h
+ -D"DATAOFFSET=$(DATAOFFSET)"
AFLAGS += $(cflags-y)
CFLAGS += $(cflags-y)
diff -urN -X dontdiff a-orig/arch/mips/kernel/vmlinux.lds.S a/arch/mips/kernel/vmlinux.lds.S
--- a-orig/arch/mips/kernel/vmlinux.lds.S Tue Oct 19 06:53:46 2004
+++ a/arch/mips/kernel/vmlinux.lds.S Tue Oct 19 23:08:15 2004
@@ -49,7 +49,7 @@
/* writeable */
.data : { /* Data */
- . = . + MAPPED_OFFSET; /* for CONFIG_MAPPED_KERNEL */
+ . = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
*(.data.init_task)
*(.data)
diff -urN -X dontdiff a-orig/include/asm-mips/sn/mapped_kernel.h a/include/asm-mips/sn/mapped_kernel.h
--- a-orig/include/asm-mips/sn/mapped_kernel.h Tue Oct 19 06:54:07 2004
+++ a/include/asm-mips/sn/mapped_kernel.h Tue Oct 19 23:08:15 2004
@@ -39,13 +39,11 @@
#define MAPPED_KERN_RW_TO_PHYS(x) \
((unsigned long)MAPPED_ADDR_RW_TO_PHYS(x) | \
MAPPED_KERN_RW_PHYSBASE(get_compact_nodeid()))
-#define MAPPED_OFFSET 16777216
#else /* CONFIG_MAPPED_KERNEL */
#define MAPPED_KERN_RO_TO_PHYS(x) (x - CKSEG0)
#define MAPPED_KERN_RW_TO_PHYS(x) (x - CKSEG0)
-#define MAPPED_OFFSET 0
#endif /* CONFIG_MAPPED_KERNEL */
On Wed, 20 Oct 2004, Yoichi Yuasa wrote:
> #
> +# If you need data offset, please set up as follows.
> +#
> +# dataoffset-$(CONFIG_FOO) := <data offset value>
> +#
> +
> +DATAOFFSET := $(shell if [ -z $(dataoffset-y) ] ; then echo "0"; \
> + else echo $(dataoffset-y); fi ;)
Ugh, please consider using $(if ...).
Maciej
Hello Andrew,
I had updated my patch.
Please apply latest one.
On Tue, 19 Oct 2004 18:37:12 +0100 (BST)
"Maciej W. Rozycki" <[email protected]> wrote:
> On Wed, 20 Oct 2004, Yoichi Yuasa wrote:
>
> > #
> > +# If you need data offset, please set up as follows.
> > +#
> > +# dataoffset-$(CONFIG_FOO) := <data offset value>
> > +#
> > +
> > +DATAOFFSET := $(shell if [ -z $(dataoffset-y) ] ; then echo "0"; \
> > + else echo $(dataoffset-y); fi ;)
>
> Ugh, please consider using $(if ...).
Maciej,
Thank you for your comment.
My patch is updated.
The MIPS Makefile was changed so that the offset of data section
may not be dependent on a specific machine header file.
Signed-off-by: Yoichi Yuasa <[email protected]>
diff -urN -X dontdiff a-orig/arch/mips/Makefile a/arch/mips/Makefile
--- a-orig/arch/mips/Makefile Tue Oct 19 06:53:06 2004
+++ a/arch/mips/Makefile Wed Oct 20 23:47:05 2004
@@ -527,6 +527,7 @@
#load-$(CONFIG_SGI_IP27) += 0xa80000000001c000
ifdef CONFIG_MAPPED_KERNEL
load-$(CONFIG_SGI_IP27) += 0xc001c000
+dataoffset-$(CONFIG_SGI_IP27) += 0x01000000
else
load-$(CONFIG_SGI_IP27) += 0x8001c000
endif
@@ -644,7 +645,7 @@
CPPFLAGS_vmlinux.lds := \
-D"LOADADDR=$(load-y)" \
-D"JIFFIES=$(JIFFIES)" \
- -imacros $(srctree)/include/asm-$(ARCH)/sn/mapped_kernel.h
+ -D"DATAOFFSET=$(if $(dataoffset-y),$(dataoffset-y),0)"
AFLAGS += $(cflags-y)
CFLAGS += $(cflags-y)
diff -urN -X dontdiff a-orig/arch/mips/kernel/vmlinux.lds.S a/arch/mips/kernel/vmlinux.lds.S
--- a-orig/arch/mips/kernel/vmlinux.lds.S Tue Oct 19 06:53:46 2004
+++ a/arch/mips/kernel/vmlinux.lds.S Wed Oct 20 23:46:31 2004
@@ -49,7 +49,7 @@
/* writeable */
.data : { /* Data */
- . = . + MAPPED_OFFSET; /* for CONFIG_MAPPED_KERNEL */
+ . = . + DATAOFFSET; /* for CONFIG_MAPPED_KERNEL */
*(.data.init_task)
*(.data)
diff -urN -X dontdiff a-orig/include/asm-mips/sn/mapped_kernel.h a/include/asm-mips/sn/mapped_kernel.h
--- a-orig/include/asm-mips/sn/mapped_kernel.h Tue Oct 19 06:54:07 2004
+++ a/include/asm-mips/sn/mapped_kernel.h Wed Oct 20 23:46:32 2004
@@ -39,13 +39,11 @@
#define MAPPED_KERN_RW_TO_PHYS(x) \
((unsigned long)MAPPED_ADDR_RW_TO_PHYS(x) | \
MAPPED_KERN_RW_PHYSBASE(get_compact_nodeid()))
-#define MAPPED_OFFSET 16777216
#else /* CONFIG_MAPPED_KERNEL */
#define MAPPED_KERN_RO_TO_PHYS(x) (x - CKSEG0)
#define MAPPED_KERN_RW_TO_PHYS(x) (x - CKSEG0)
-#define MAPPED_OFFSET 0
#endif /* CONFIG_MAPPED_KERNEL */