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" \ | ||||
|     STRIP="$(STRIP)" \ | ||||
|     STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \ | ||||
|     PATCHELF="$(STAGING_DIR_HOST)/bin/patchelf" \ | ||||
|     $(SCRIPT_DIR)/rstrip.sh | ||||
| endif | ||||
|  | ||||
|   | ||||
| @@ -30,6 +30,16 @@ find $TARGETS -type f -a -exec file {} \; | \ | ||||
| 		eval "$STRIP_KMOD $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" | ||||
| 		a=$(stat -c '%a' $F) | ||||
| 		[ "$a" = "$b" ] || chmod $b $F | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Jo-Philipp Wich
					Jo-Philipp Wich