34 lines
		
	
	
		
			583 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			583 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| lib=$1; shift
 | |
| as=$1; shift
 | |
| ar=$1; shift
 | |
| rm -rf newsym.dir
 | |
| trap "rm -rf newsym.dir" 0 1 2 15
 | |
| mkdir newsym.dir
 | |
| while [ -n "$1" ]; do
 | |
|     newsym=$1; shift
 | |
|     oldsym=$1; shift
 | |
|     cat <<EOF > newsym.dir/$newsym.s
 | |
| 	.section .text
 | |
| 	.global	_$newsym
 | |
| 	.global	__imp__$newsym
 | |
| _$newsym:
 | |
| 	jmp	*__imp__$oldsym
 | |
| 
 | |
| 	.section .idata\$7
 | |
| 	.long	__head_cygwin1_dll
 | |
| 
 | |
| 	.section        .idata\$5
 | |
| __imp__$newsym:	.rva    1f
 | |
| 
 | |
| 	.section .idata\$4
 | |
| 	.rva	1f
 | |
| 
 | |
| 	.section .idata\$6
 | |
| 1:	.short	2
 | |
| 	.asciz	"$oldsym"
 | |
| EOF
 | |
|     $as -o newsym.dir/$newsym.o newsym.dir/$newsym.s
 | |
| done
 | |
| $ar crus $lib newsym.dir/*.o
 |