Changeset ae9624e in mainline
- Timestamp:
- 2005-09-04T23:38:03Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 6153749
- Parents:
- 824553ed
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/Makefile.inc
r824553ed rae9624e 6 6 AS=$(AMD64_BINUTILS_DIR)/$(AMD64_TARGET)-as 7 7 LD=$(AMD64_BINUTILS_DIR)/$(AMD64_TARGET)-ld 8 OBJDUMP=$(AMD64_BINUTILS_DIR)/$(AMD64_TARGET)-objdump 8 9 OBJCOPY=$(AMD64_BINUTILS_DIR)/$(AMD64_TARGET)-objcopy 9 10 BFD_NAME=elf64-x86-64 -
arch/amd64/src/boot/boot.S
r824553ed rae9624e 158 158 .fill 509,8,0 159 159 .quad ptl_2 + (PTL_WRITABLE | PTL_PRESENT) 160 .fill 2,8,0160 .fill 1,8,0 161 161 162 162 .align 4096 -
arch/ia32/Makefile.inc
r824553ed rae9624e 2 2 AS=as 3 3 LD=ld 4 OBJDUMP=objdump 4 5 OBJCOPY=objcopy 5 6 BFD_NAME=elf32-i386 -
arch/ia64/Makefile.inc
r824553ed rae9624e 7 7 AS=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-as 8 8 LD=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-ld 9 OBJDUMP=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-objdump 9 10 OBJCOPY=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-objcopy 10 11 BFD_NAME=elf64-little -
arch/mips/Makefile.inc
r824553ed rae9624e 7 7 AS=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-as 8 8 LD=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-ld 9 OBJDUMP=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objdump 9 10 OBJCOPY=$(MIPS_BINUTILS_DIR)/$(MIPS_TARGET)-objcopy 10 11 BFD_NAME=elf32-tradlittlemips -
arch/ppc/Makefile.inc
r824553ed rae9624e 7 7 AS=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-as 8 8 LD=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-ld 9 OBJDUMP=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-objdump 9 10 OBJCOPY=$(PPC_BINUTILS_DIR)/$(PPC_TARGET)-objcopy 10 11 BFD_NAME=elf32-powerpc -
src/Makefile
r824553ed rae9624e 66 66 clean: 67 67 find . ../arch/$(ARCH)/src ../test -name '*.o' -exec rm \{\} \; 68 -rm *.bin kernel.map kernel.map.pre debug/real_map.bin68 -rm *.bin kernel.map kernel.map.pre kernel.objdump debug/real_map.bin 69 69 $(MAKE) -C ../arch/$(ARCH)/boot clean 70 70 … … 74 74 -$(MAKE) clean 75 75 76 kernel.bin: $(arch_objects) $(objects) $(test_objects) ../arch/$(ARCH)/_link.ld 76 debug/real_map.bin: $(arch_objects) $(objects) $(test_objects) ../arch/$(ARCH)/_link.ld 77 77 $(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab Makefile debug/empty_map.o 78 78 $(LD) -T ../arch/$(ARCH)/_link.ld $(LFLAGS) $(arch_objects) $(objects) $(test_objects) debug/empty_map.o -o $@ -Map kernel.map.pre 79 ../tools/genmap.py kernel.map.pre debug/real_map.bin 80 $(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab debug/real_map.bin debug/real_map.o 79 $(OBJDUMP) -t $(arch_objects) $(objects) $(test_objects) > kernel.objdump 80 ../tools/genmap.py kernel.map.pre kernel.objdump debug/real_map.bin 81 82 debug/real_map.o: debug/real_map.bin 83 $(OBJCOPY) -I binary -O $(BFD_NAME) -B $(BFD_ARCH) --prefix-sections=symtab $< $@ 84 85 86 kernel.bin: $(arch_objects) $(objects) $(test_objects) ../arch/$(ARCH)/_link.ld debug/real_map.o 81 87 $(LD) -T ../arch/$(ARCH)/_link.ld $(LFLAGS) $(arch_objects) $(objects) $(test_objects) debug/real_map.o -o $@ -Map kernel.map 82 88 -
tools/genmap.py
r824553ed rae9624e 5 5 import re 6 6 7 symline = re.compile(r'(0x[a-f0-9]+)\s+([^\s]+)$')8 fileline = re.compile(r'[^\s]+\s+0x[a-f0-9]+\s+0x[a-f0-9]+\s+([^\s]+\.o)$')9 10 7 MAXSTRING=63 11 8 symtabfmt = "<Q%ds" % (MAXSTRING+1) 12 9 13 def read_symbols(inp):14 while 1:15 line = inp.readline()16 if not line:17 return18 if 'memory map' in line:19 break20 10 21 symtable = {} 22 filename = '' 23 while 1: 24 line = inp.readline() 25 if not line.strip(): 11 objline = re.compile(r'([0-9a-f]+)\s+[lg]\s+F\s+\.text\s+[0-9a-f]+\s+(.*)$') 12 fileexp = re.compile(r'([^\s]+):\s+file format') 13 def read_obdump(inp): 14 result = {} 15 fname = '' 16 for line in inp: 17 line = line.strip() 18 res = objline.match(line) 19 if res: 20 result.setdefault(fname,[]).append((int(res.group(1),16), 21 res.group(2))) 22 res = fileexp.match(line) 23 if res: 24 fname = res.group(1) 26 25 continue 27 if line[0] not in (' ','.'): 28 break 26 27 return result 28 29 startfile = re.compile(r'\.text\s+(0x[0-9a-f]+)\s+0x[0-9a-f]+\s+(.*)$') 30 def generate(kmapf, obmapf, out): 31 obdump = read_obdump(obmapf) 32 33 def sorter(x,y): 34 return cmp(x[0],y[0]) 35 36 for line in kmapf: 29 37 line = line.strip() 30 # Search for file name 31 res = fileline.match(line) 32 if res: 33 filename = res.group(1) 34 # Search for symbols 35 res = symline.match(line) 36 if res: 37 symtable[int(res.group(1),16)] = filename + ':' + res.group(2) 38 return symtable 39 40 def generate(inp, out): 41 symtab = read_symbols(inp) 42 if not symtab: 43 print "Bad kernel.map format, empty." 44 sys.exit(1) 45 addrs = symtab.keys() 46 addrs.sort() 47 for addr in addrs: 48 # Do not write address 0, it indicates end of data 49 if addr == 0: 50 continue 51 data = struct.pack(symtabfmt,addr,symtab[addr][:MAXSTRING]) 52 out.write(data) 38 res = startfile.match(line) 39 if res and obdump.has_key(res.group(2)): 40 offset = int(res.group(1),16) 41 fname = res.group(2) 42 symbols = obdump[fname] 43 symbols.sort(sorter) 44 for addr,symbol in symbols: 45 value = fname + ':' + symbol 46 data = struct.pack(symtabfmt,addr+offset,value[:MAXSTRING]) 47 out.write(data) 48 53 49 out.write(struct.pack(symtabfmt,0,'')) 54 50 55 51 def main(): 56 if len(sys.argv) != 3:57 print "Usage: %s <kernel.map> < output.bin>" % sys.argv[0]52 if len(sys.argv) != 4: 53 print "Usage: %s <kernel.map> <nm dump> <output.bin>" % sys.argv[0] 58 54 sys.exit(1) 59 55 60 inp = open(sys.argv[1],'r') 61 out = open(sys.argv[2],'w') 62 generate(inp,out) 63 inp.close() 56 kmapf = open(sys.argv[1],'r') 57 obmapf = open(sys.argv[2],'r') 58 out = open(sys.argv[3],'w') 59 generate(kmapf,obmapf,out) 60 kmapf.close() 61 obmapf.close() 64 62 out.close() 65 63
Note:
See TracChangeset
for help on using the changeset viewer.