Port-hpcsh archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Killing linker script in NetBSD/sh3
Hi!
This patch kills linker script along with converting evbsh3 from COFF
to ELF. This fixes evbsh3 kernel build which has been broken for a
while.
Note I set default TEXTADDR to 0x8c010000 on evbsh3, which differs
from that of hpcsh, 0x8c001000.
I tested COMPUTEXEVB. I need feedback from hpcsh users.
TIA,
Masao
Index: arch/sh3/conf/Makefile.sh3
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/sh3/conf/Makefile.sh3,v
retrieving revision 1.21
diff -u -r1.21 Makefile.sh3
--- arch/sh3/conf/Makefile.sh3 11 Dec 2005 12:18:58 -0000 1.21
+++ arch/sh3/conf/Makefile.sh3 14 Mar 2006 07:18:00 -0000
@@ -5,10 +5,10 @@
# This makefile is constructed from a machine description:
# config machineid
# Most changes should be made in the machine description
-# /sys/arch/<machine>/conf/``machineid''
+# /sys/arch/<arch>/conf/``machineid''
# after which you should do
# config machineid
-# CPU generic makefile changes should be made in
+# Machine generic makefile changes should be made in
# /sys/arch/sh3/conf/Makefile.sh3
# after which config should be rerun for all machines of that type.
#
@@ -32,8 +32,7 @@
##
## (2) compile settings
##
-CPPFLAGS+= -D${MACHINE}
-CWARNFLAGS+= -Wno-parentheses
+# CPPFLAGS set by platform-specific Makefile fragment.
AFLAGS+= -x assembler-with-cpp -traditional-cpp
# pkgsrc/cross/sh* dies with -O2, use -O1 for now
COPTS?= -O1
@@ -52,16 +51,11 @@
locore.o: ${THISSH3}/${MACHINE}/locore.S assym.h
${NORMAL_S}
-# XXX compile ffs_inode.c always with -O0 to avoid egcs-1.1.2 bug.
-#ffs_inode.o: $S/ufs/ffs/ffs_inode.c
-# ${CC} ${CFLAGS} -O0 ${CPPFLAGS} ${PROF} -c $<
-
##
## (5) link settings
##
-# LINKFORMAT possibly set by individual sh3 port
-# LDSCRIPTBASE comes from the kernel's config
-LINKFORMAT?= -T ${THISSH3}/conf/${LDSCRIPTBASE}
+TEXTADDR?= 0x8c010000
+LINKFLAGS_NORMAL= -X
##
## (6) port specific target dependencies
Index: arch/evbsh3/conf/COMPUTEXEVB
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/evbsh3/conf/COMPUTEXEVB,v
retrieving revision 1.26
diff -u -r1.26 COMPUTEXEVB
--- arch/evbsh3/conf/COMPUTEXEVB 7 Dec 2005 09:10:13 -0000 1.26
+++ arch/evbsh3/conf/COMPUTEXEVB 10 Mar 2006 09:58:41 -0000
@@ -50,7 +50,7 @@
options COMPAT_BSDPTY # /dev/[pt]ty?? ptys.
# Executable format options
-options EXEC_COFF # 32-bit COFF executables (sh-compiler)
+#options EXEC_COFF # 32-bit COFF executables (sh-compiler)
# File systems
file-system FFS # UFS
Index: arch/evbsh3/conf/std.evbsh3.eb
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/evbsh3/conf/std.evbsh3.eb,v
retrieving revision 1.5
diff -u -r1.5 std.evbsh3.eb
--- arch/evbsh3/conf/std.evbsh3.eb 11 Dec 2005 12:17:13 -0000 1.5
+++ arch/evbsh3/conf/std.evbsh3.eb 14 Mar 2006 07:07:30 -0000
@@ -8,5 +8,6 @@
options EXEC_SCRIPT # exec #! scripts
makeoptions ENDIAN="-EB"
-makeoptions LDSCRIPTBASE="sh.x" # for big endian
+#makeoptions LDSCRIPTBASE="sh.x" # for big endian
+makeoptions TEXTADDR=0x8c010000
makeoptions MACHINE_ARCH=sh3eb
Index: arch/evbsh3/conf/std.evbsh3.el
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/evbsh3/conf/std.evbsh3.el,v
retrieving revision 1.5
diff -u -r1.5 std.evbsh3.el
--- arch/evbsh3/conf/std.evbsh3.el 11 Dec 2005 12:17:13 -0000 1.5
+++ arch/evbsh3/conf/std.evbsh3.el 14 Mar 2006 07:07:41 -0000
@@ -8,5 +8,6 @@
options EXEC_SCRIPT # exec #! scripts
makeoptions ENDIAN="-EL"
-makeoptions LDSCRIPTBASE="shl.x" # for little endian
+#makeoptions LDSCRIPTBASE="shl.x" # for little endian
+makeoptions TEXTADDR=0x8c010000
makeoptions MACHINE_ARCH=sh3el
Index: arch/evbsh3/evbsh3/locore.S
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/evbsh3/evbsh3/locore.S,v
retrieving revision 1.9
diff -u -r1.9 locore.S
--- arch/evbsh3/evbsh3/locore.S 11 Dec 2005 12:17:13 -0000 1.9
+++ arch/evbsh3/evbsh3/locore.S 14 Mar 2006 06:24:38 -0000
@@ -218,8 +218,8 @@
XLInitializeBsc:.long _C_LABEL(InitializeBsc)
#endif /* DONT_INIT_BSC */
___start: .long start
-___etext: .long _etext
-___end: .long _end
+___etext: .long _C_LABEL(etext)
+___end: .long _C_LABEL(end)
XLtmpstk: .long INIT_STACK
_KERNBASE: .long 0x8c000000
_ROM_START: .long IOM_ROM_BEGIN
Index: arch/evbsh3/evbsh3/machdep.c
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/evbsh3/evbsh3/machdep.c,v
retrieving revision 1.56
diff -u -r1.56 machdep.c
--- arch/evbsh3/evbsh3/machdep.c 24 Dec 2005 20:07:03 -0000 1.56
+++ arch/evbsh3/evbsh3/machdep.c 14 Mar 2006 06:22:46 -0000
@@ -223,11 +223,11 @@
void
initSH3(void *pc) /* XXX return address */
{
- extern char _edata[], _end[];
+ extern char edata[], end[];
vaddr_t kernend;
/* Clear bss */
- memset(_edata, 0, _end - _edata);
+ memset(edata, 0, end - edata);
/* Initilize CPU ops. */
#if defined(SH3) && defined(SH4)
@@ -261,7 +261,7 @@
consinit();
/* Load memory to UVM */
- kernend = atop(round_page(SH3_P1SEG_TO_PHYS(_end)));
+ kernend = atop(round_page(SH3_P1SEG_TO_PHYS(end)));
physmem = atop(IOM_RAM_SIZE);
uvm_page_physload(
kernend, atop(IOM_RAM_BEGIN + IOM_RAM_SIZE),
Index: arch/hpcsh/conf/std.hpcsh
===================================================================
RCS file: /src/NetBSD/cvsroot/src/sys/arch/hpcsh/conf/std.hpcsh,v
retrieving revision 1.7
diff -u -r1.7 std.hpcsh
--- arch/hpcsh/conf/std.hpcsh 11 Dec 2005 12:17:36 -0000 1.7
+++ arch/hpcsh/conf/std.hpcsh 14 Mar 2006 07:04:06 -0000
@@ -10,5 +10,6 @@
makeoptions ENDIAN="-EL"
#makeoptions LDSCRIPTBASE="shl-coff.x" # for COFF kernel
-makeoptions LDSCRIPTBASE="shl-elf.x" # for ELF kernel
+#makeoptions LDSCRIPTBASE="shl-elf.x" # for ELF kernel
+makeoptions TEXTADDR=0x8c001000
makeoptions MACHINE_ARCH=sh3el
Home |
Main Index |
Thread Index |
Old Index