mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	makeopcodetargets.py: we need to import Lib/opcode.py
Issue #20021: use importlib.machinery to import Lib/opcode.py and not an opcode module coming from somewhere else. makeopcodetargets.py is part of the Python build process and it is run by an external Python program, not the built Python program. Patch written by Serhiy Storchaka.
This commit is contained in:
		
							parent
							
								
									92c8dce985
								
							
						
					
					
						commit
						ca9dbc7d88
					
				
					 1 changed files with 21 additions and 1 deletions
				
			
		|  | @ -3,14 +3,34 @@ | |||
| (for compilers supporting computed gotos or "labels-as-values", such as gcc). | ||||
| """ | ||||
| 
 | ||||
| import opcode | ||||
| import os | ||||
| import sys | ||||
| 
 | ||||
| 
 | ||||
| try: | ||||
|     from importlib.machinery import SourceFileLoader | ||||
| except ImportError: | ||||
|     import imp | ||||
| 
 | ||||
|     def find_module(modname): | ||||
|         """Finds and returns a module in the local dist/checkout. | ||||
|         """ | ||||
|         modpath = os.path.join( | ||||
|             os.path.dirname(os.path.dirname(__file__)), "Lib") | ||||
|         return imp.load_module(modname, *imp.find_module(modname, [modpath])) | ||||
| else: | ||||
|     def find_module(modname): | ||||
|         """Finds and returns a module in the local dist/checkout. | ||||
|         """ | ||||
|         modpath = os.path.join( | ||||
|             os.path.dirname(os.path.dirname(__file__)), "Lib", modname + ".py") | ||||
|         return SourceFileLoader(modname, modpath).load_module() | ||||
| 
 | ||||
| 
 | ||||
| def write_contents(f): | ||||
|     """Write C code contents to the target file object. | ||||
|     """ | ||||
|     opcode = find_module('opcode') | ||||
|     targets = ['_unknown_opcode'] * 256 | ||||
|     for opname, op in opcode.opmap.items(): | ||||
|         targets[op] = "TARGET_%s" % opname | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Victor Stinner
						Victor Stinner