34 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Plaintext
		
	
	
	
| # RUN: rm -rf %t && mkdir -p %t && cd %t
 | |
| # RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o a.obj %S/Inputs/a.s
 | |
| # RUN: llvm-mc -triple=x86_64-pc-windows-msvc -filetype=obj -o b.obj %S/Inputs/b.s
 | |
| # RUN: llvm-lib /out:xfghashmap.lib a.obj b.obj
 | |
| 
 | |
| ## Replace a section in the library file with /<XFGHASHMAP>/ emulating
 | |
| ## a library from the Windows SDK for Windows 11.
 | |
| # RUN: %python %s xfghashmap.lib b.obj/
 | |
| 
 | |
| ## This should print the /<XFGHASHMAP>/ section as well as an .obj one.
 | |
| # RUN: llvm-lib /list %t/xfghashmap.lib | FileCheck %s
 | |
| 
 | |
| # CHECK: a.obj
 | |
| # CHECK: /<XFGHASHMAP>/
 | |
| # CHECK-NOT: b.obj
 | |
| 
 | |
| import sys
 | |
| 
 | |
| if len(sys.argv) < 3:
 | |
|   print("Use: python3 xfghashmap-list.test <LIBRARY_FILE> <TEMPLATE>")
 | |
|   exit(1)
 | |
| 
 | |
| template = bytes(sys.argv[2], 'utf-8')
 | |
| xfghashmap = b'/<XFGHASHMAP>/'
 | |
| 
 | |
| data = None
 | |
| with open(sys.argv[1], "rb") as inp:
 | |
|   data = inp.read()
 | |
| with open(sys.argv[1], "wb") as outp:
 | |
|   pos = data.find(template)
 | |
|   outp.write(data[:pos])
 | |
|   outp.write(xfghashmap)
 | |
|   outp.write(data[pos + len(xfghashmap):])
 |