Revert "Strip ELF binaries to reduce size of initrd" 00/240600/1
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 10 Aug 2020 02:21:48 +0000 (11:21 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 10 Aug 2020 02:23:10 +0000 (11:23 +0900)
This reverts commit c77ef6505b7a070ab0eea47b510e5ba71104b198.

The strip eh_frame/eh_frame_hdr causes arm64 ramdisk-recovery
operation fail with process segment fault, so reverting until
resolving the issue.

Crash in arm64 ramdisk-recovery.img:
  Maps Information
        5591def000       5591df6000 r-xp /mnt/initrd-recovery/usr/bin/flash-manager
        55a758d000       55a75ae000 rw-p [heap]
        7f8a9b0000       7f8a9ba000 r-xp /mnt/initrd-recovery/usr/lib64/libconfig.so.8
        7f8a9cd000       7f8ab18000 r-xp /mnt/initrd-recovery/usr/lib64/libc.so.6
        7f8ab30000       7f8ab41000 r-xp /mnt/initrd-recovery/usr/lib64/libgcc_s.so.1
        7f8ab55000       7f8ab69000 r-xp /mnt/initrd-recovery/usr/lib64/libusbgx.so.1
        7f8ab7f000       7f8abc4000 r-xp /mnt/initrd-recovery/usr/lib64/libblkid.so.1
        7f8abe5000       7f8abfc000 r-xp /mnt/initrd-recovery/usr/lib64/libpthread.so.0
        7f8ac15000       7f8ac32000 r-xp /mnt/initrd-recovery/usr/lib/ld-linux-aarch64.so.1
        7fcb282000       7fcb2a3000 rw-p [stack]
  End of Maps Information

Change-Id: Idfebc27fea087d90845a1b73189451b2e81e9bb6
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
packaging/initrd-recovery.spec
src/initrd-recovery/mkinitrd-recovery.sh.in

index f07dd67f8ae9c0ccd9d3bbbcc739de1357f7e97c..3ddc7096cb10de648627cd54b9ca42ed6bae9f81 100644 (file)
@@ -57,14 +57,6 @@ mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
 install -m 644 units/mnt-inform.mount %{buildroot}%{_unitdir}
 ln -s ../mnt-inform.mount %{buildroot}%{_unitdir}/local-fs.target.wants
 
-# Pack libbfd for strip
-LIBBFD=$(ldd /usr/bin/strip | sed -ne '/libbfd/s/^[[:space:]]\(libbfd[^[:space:]]\+\).*$/\1/p')
-install -m 0755 -D %{_libdir}/${LIBBFD} %{buildroot}%{initrd_recovery_libexec_dir}/${LIBBFD}
-# Pack strip and od
-install -m 0755 -D %{_bindir}/strip %{buildroot}%{initrd_recovery_libexec_dir}/strip
-install -m 0755 -D %{_bindir}/od %{buildroot}%{initrd_recovery_libexec_dir}/od
-
-
 %posttrans
 %{initrd_recovery_libexec_dir}/mkinitrd-recovery.sh
 rm -rf %{initrd_recovery_libexec_dir}
@@ -82,9 +74,6 @@ rm -rf %{_libdir}/initrd-recovery
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/init
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/mkinitrd-recovery.sh
 %attr(0775,root,root)%{initrd_recovery_libexec_dir}/minireboot
-%attr(0775,root,root)%{initrd_recovery_libexec_dir}/strip
-%attr(0775,root,root)%{initrd_recovery_libexec_dir}/od
-%attr(0775,root,root)%{initrd_recovery_libexec_dir}/libbfd*
 
 %files -n reboot-param-helper
 %{_unitdir}/mnt-inform.mount
index a916fb386ed8c86cbedd278d808bf15c0bbdc7cb..dc2675c6569dc6f3cdda9665f87524914ede6726 100755 (executable)
@@ -14,8 +14,6 @@ RM="/bin/rm"
 TR="/bin/tr"
 GREP="/bin/grep"
 CUT="/bin/cut"
-STRIP="@INITRD_RECOVERY_LIBEXEC_DIR@/strip"
-OD="@INITRD_RECOVERY_LIBEXEC_DIR@/od"
 
 UNAME="/bin/uname"
 ARCH=`$UNAME -m`
@@ -133,14 +131,6 @@ do_copy() {
     mkdir_p_parent $dst
 
     "$CP" -f "$src" "$dst"
-
-    # Check first 4 bytes of file for x7fELF magic
-    type=$(echo -e `"$OD" -tx4 -N4 -An $dst`)
-    if [ x"$type" == x"464c457f" ]; then
-       # Strip out the exception handling section to reduce binary
-       LD_LIBRARY_PATH="@INITRD_RECOVERY_LIBEXEC_DIR@" \
-       "$STRIP" --strip-unneeded -R .eh_frame -R .eh_frame_hdr "$dst"
-    fi
 }
 
 #-----------------------------------------------------------------------------