OLD | NEW |
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2012 The Native Client Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 # | 5 # |
6 # IMPORTANT NOTE: If you make local mods to this file, you must run: | 6 # IMPORTANT NOTE: If you make local mods to this file, you must run: |
7 # % pnacl/build.sh driver | 7 # % pnacl/build.sh driver |
8 # in order for them to take effect in the scons build. This command | 8 # in order for them to take effect in the scons build. This command |
9 # updates the copy in the toolchain/ tree. | 9 # updates the copy in the toolchain/ tree. |
10 # | 10 # |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
426 @SimpleCache | 426 @SimpleCache |
427 def IsNativeArchive(filename): | 427 def IsNativeArchive(filename): |
428 return IsArchive(filename) and not IsBitcodeArchive(filename) | 428 return IsArchive(filename) and not IsBitcodeArchive(filename) |
429 | 429 |
430 class ELFHeader(object): | 430 class ELFHeader(object): |
431 ELF_MAGIC = '\x7fELF' | 431 ELF_MAGIC = '\x7fELF' |
432 ELF_TYPES = { 1: 'REL', # .o | 432 ELF_TYPES = { 1: 'REL', # .o |
433 2: 'EXEC', # .exe | 433 2: 'EXEC', # .exe |
434 3: 'DYN' } # .so | 434 3: 'DYN' } # .so |
435 ELF_MACHINES = { 3: '386', | 435 ELF_MACHINES = { 3: '386', |
| 436 8: 'MIPS', |
436 40: 'ARM', | 437 40: 'ARM', |
437 62: 'X86_64' } | 438 62: 'X86_64' } |
438 ELF_OSABI = { 0: 'UNIX', | 439 ELF_OSABI = { 0: 'UNIX', |
439 3: 'LINUX', | 440 3: 'LINUX', |
440 123: 'NACL' } | 441 123: 'NACL' } |
441 ELF_ABI_VER = { 0: 'NONE', | 442 ELF_ABI_VER = { 0: 'NONE', |
442 7: 'NACL' } | 443 7: 'NACL' } |
443 | 444 |
444 def __init__(self, e_type, e_machine, e_osabi, e_abiver): | 445 def __init__(self, e_type, e_machine, e_osabi, e_abiver): |
445 self.type = self.ELF_TYPES[e_type] | 446 self.type = self.ELF_TYPES[e_type] |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
931 '386' : 'X8632', | 932 '386' : 'X8632', |
932 '686' : 'X8632', | 933 '686' : 'X8632', |
933 | 934 |
934 'amd64' : 'X8664', | 935 'amd64' : 'X8664', |
935 'x86_64': 'X8664', | 936 'x86_64': 'X8664', |
936 'x86-64': 'X8664', | 937 'x86-64': 'X8664', |
937 'x8664' : 'X8664', | 938 'x8664' : 'X8664', |
938 | 939 |
939 'arm' : 'ARM', | 940 'arm' : 'ARM', |
940 'armv7' : 'ARM', | 941 'armv7' : 'ARM', |
941 'arm-thumb2' : 'ARM' } | 942 'arm-thumb2' : 'ARM', |
| 943 |
| 944 'mips32': 'MIPS32', |
| 945 'mips' : 'MIPS32', |
| 946 } |
942 if arch not in archfix: | 947 if arch not in archfix: |
943 Log.Fatal('Unrecognized arch "%s"!', arch) | 948 Log.Fatal('Unrecognized arch "%s"!', arch) |
944 return archfix[arch] | 949 return archfix[arch] |
945 | 950 |
946 def IsWindowsPython(): | 951 def IsWindowsPython(): |
947 return 'windows' in platform.system().lower() | 952 return 'windows' in platform.system().lower() |
948 | 953 |
949 def SetupCygwinLibs(): | 954 def SetupCygwinLibs(): |
950 bindir = env.getone('DRIVER_BIN') | 955 bindir = env.getone('DRIVER_BIN') |
951 os.environ['PATH'] += os.pathsep + pathtools.tosys(bindir) | 956 os.environ['PATH'] += os.pathsep + pathtools.tosys(bindir) |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 # Last step | 1101 # Last step |
1097 step_output = self.output | 1102 step_output = self.output |
1098 else: | 1103 else: |
1099 # Intermediate step | 1104 # Intermediate step |
1100 if self.use_names_for_input: | 1105 if self.use_names_for_input: |
1101 step_output = self.namegen.TempNameForInput(self.input, output_type) | 1106 step_output = self.namegen.TempNameForInput(self.input, output_type) |
1102 else: | 1107 else: |
1103 step_output = self.namegen.TempNameForOutput(output_type) | 1108 step_output = self.namegen.TempNameForOutput(output_type) |
1104 callback(step_input, step_output, **extra) | 1109 callback(step_input, step_output, **extra) |
1105 step_input = step_output | 1110 step_input = step_output |
OLD | NEW |