scripts: extend rstrip.sh to remove bad rpaths
Remove all rpath entries which do not point to a location below /lib or /usr/lib and which do not begin with '$ORIGIN'. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org> SVN-Revision: 44377
This commit is contained in:
		
							
								
								
									
										1
									
								
								rules.mk
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								rules.mk
									
									
									
									
									
								
							| @@ -269,6 +269,7 @@ else | |||||||
|     NM="$(TARGET_CROSS)nm" \ |     NM="$(TARGET_CROSS)nm" \ | ||||||
|     STRIP="$(STRIP)" \ |     STRIP="$(STRIP)" \ | ||||||
|     STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \ |     STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \ | ||||||
|  |     PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \ | ||||||
|     $(SCRIPT_DIR)/rstrip.sh |     $(SCRIPT_DIR)/rstrip.sh | ||||||
| endif | endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -30,6 +30,16 @@ find $TARGETS -type f -a -exec file {} \; | \ | |||||||
| 		eval "$STRIP_KMOD $F" | 		eval "$STRIP_KMOD $F" | ||||||
| 	} || { | 	} || { | ||||||
| 		b=$(stat -c '%a' $F) | 		b=$(stat -c '%a' $F) | ||||||
|  | 		[ -z "$PATCHELF" ] || [ -z "$TOPDIR" ] || { | ||||||
|  | 			old_rpath="$($PATCHELF --print-rpath $F)"; new_rpath="" | ||||||
|  | 			for path in $old_rpath; do | ||||||
|  | 				case "$path" in | ||||||
|  | 					/lib/[^/]*|/usr/lib/[^/]*|\$ORIGIN/*) new_rpath="${new_rpath:+$new_rpath:}$path" ;; | ||||||
|  | 					*) echo "$SELF: $F: removing rpath $path" ;; | ||||||
|  | 				esac | ||||||
|  | 			done | ||||||
|  | 			[ "$new_rpath" = "$old_rpath" ] || $PATCHELF --set-rpath "$new_rpath" $F | ||||||
|  | 		} | ||||||
| 		eval "$STRIP $F" | 		eval "$STRIP $F" | ||||||
| 		a=$(stat -c '%a' $F) | 		a=$(stat -c '%a' $F) | ||||||
| 		[ "$a" = "$b" ] || chmod $b $F | 		[ "$a" = "$b" ] || chmod $b $F | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jo-Philipp Wich
					Jo-Philipp Wich