Rev 326 | Rev 330 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 326 | Rev 329 | ||
---|---|---|---|
Line 9... | Line 9... | ||
9 | OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump |
9 | OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump |
10 | OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy |
10 | OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy |
11 | BFD_NAME=elf32-tradlittlemips |
11 | BFD_NAME=elf32-tradlittlemips |
12 | BFD_ARCH=mips |
12 | BFD_ARCH=mips |
13 | 13 | ||
14 | ASFLAGS=-mips3 |
- | |
15 | - | ||
16 | DEFS=-DARCH=$(ARCH) -DMACHINE=${MACHINE} |
14 | DEFS=-DARCH=$(ARCH) -DMACHINE=${MACHINE} -DKERNEL_LOAD_ADDRESS=${KERNEL_LOAD_ADDRESS} |
17 | CFLAGS=$(DEFS) -mno-abicalls -mips3 -G 0 -nostdlib -fno-builtin -O2 |
15 | CFLAGS=$(DEFS) -mno-abicalls -G 0 -nostdlib -fno-builtin -O2 -fno-zero-initialized-in-bss |
18 | LFLAGS=-mips2 -M -no-check-sections |
16 | LFLAGS=-M -N |
19 | 17 | ||
20 | # It seems that on big endian either GCC or the simulators |
18 | # It seems that on big endian either GCC or the simulators |
21 | # have the swl/swr/lwl/lwr instructions wrong. Just for sure, |
19 | # have the swl/swr/lwl/lwr instructions wrong. Just for sure, |
22 | # disable it with -mmemcpy (force calling memcpy instead of inlining) |
20 | # disable it with -mmemcpy (force calling memcpy instead of inlining) |
23 | 21 | ||
24 | ifeq (${MACHINE},indy) |
22 | ifeq (${MACHINE},indy) |
25 | CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY |
23 | CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -march=r4600 |
26 | BFD = elf32-big |
24 | BFD = ecoff-bigmips |
- | 25 | KERNEL_LOAD_ADDRESS = 0x88002000 |
|
27 | endif |
26 | endif |
28 | 27 | ||
29 | ifeq (${MACHINE},lgxemul) |
28 | ifeq (${MACHINE},lgxemul) |
30 | CFLAGS += -DHAVE_FPU -DFPU_LAZY |
29 | CFLAGS += -DHAVE_FPU -DFPU_LAZY -mips3 |
31 | BFD = ecoff-littlemips |
30 | BFD = ecoff-littlemips |
- | 31 | KERNEL_LOAD_ADDRESS = 0x80010000 |
|
32 | endif |
32 | endif |
33 | 33 | ||
34 | ifeq (${MACHINE},bgxemul) |
34 | ifeq (${MACHINE},bgxemul) |
35 | CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY |
35 | CFLAGS += -EB -mmemcpy -DBIG_ENDIAN -DHAVE_FPU -DFPU_LAZY -mips3 |
36 | BFD = ecoff-bigmips |
36 | BFD = ecoff-bigmips |
- | 37 | KERNEL_LOAD_ADDRESS = 0x80010000 |
|
37 | endif |
38 | endif |
38 | 39 | ||
- | 40 | # MSIM needs lwl/swl patch & 4kc instruction patch to work |
|
- | 41 | # otherwise add -mmemcpy -mips3 |
|
39 | ifeq (${MACHINE},msim) |
42 | ifeq (${MACHINE},msim) |
40 | BFD = binary |
43 | BFD = binary |
41 | CFLAGS += -msoft-float |
44 | CFLAGS += -msoft-float -march=4kc |
- | 45 | KERNEL_LOAD_ADDRESS = 0x80010000 |
|
42 | endif |
46 | endif |
43 | 47 | ||
- | 48 | # SIMICS 4kc emulation is broken, although for instructions |
|
- | 49 | # that do not bother us |
|
44 | ifeq (${MACHINE},simics) |
50 | ifeq (${MACHINE},simics) |
45 | BFD = elf32-little |
51 | BFD = elf32-little |
46 | CFLAGS += -msoft-float |
52 | CFLAGS += -msoft-float -mips3 |
- | 53 | KERNEL_LOAD_ADDRESS = 0x80010000 |
|
47 | endif |
54 | endif |
48 | 55 | ||
49 | ../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in |
56 | ../arch/$(ARCH)/_link.ld: ../arch/$(ARCH)/_link.ld.in |
50 | $(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@ |
57 | $(CC) $(CFLAGS) -C -DBFD=${BFD} -E -x c $< | grep -v "^\#" > $@ |
51 | 58 |