Build with bitbake default optimizations, e.g. O2,
instead of custom O3. Reduces unzip binary package
size from 304401 to 283921 bytes, and enables building
with Os to even further reduce binary size if needed
and configured for the whole system.

Signed-off-by: Mikko Rapeli <[email protected]>
---
 .../unzip/unzip/unzip_optimization.patch      | 127 ++++++++++++++++++
 meta/recipes-extended/unzip/unzip_6.0.bb      |   1 +
 2 files changed, 128 insertions(+)
 create mode 100644 meta/recipes-extended/unzip/unzip/unzip_optimization.patch

diff --git a/meta/recipes-extended/unzip/unzip/unzip_optimization.patch 
b/meta/recipes-extended/unzip/unzip/unzip_optimization.patch
new file mode 100644
index 0000000000..4bab7b26af
--- /dev/null
+++ b/meta/recipes-extended/unzip/unzip/unzip_optimization.patch
@@ -0,0 +1,127 @@
+unzip: use optimization from bitbake
+
+Remove -O3 optimizations to use bitbake default optimization levels.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Mikko Rapeli <[email protected]>
+
+diff -rup unix-orig/configure unix/configure
+--- a/unix-orig/configure      2021-04-16 10:25:03.120858292 +0000
++++ b/unix/configure   2021-04-16 10:46:43.292546138 +0000
+@@ -70,7 +70,7 @@ int main()
+ _EOF_
+   $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+   if test $? -eq 0; then
+-    CFLAGS_OPT='-O3'
++    CFLAGS_OPT=''
+     echo "  DEC C ($CFLAGS_OPT)"
+   else
+     # HP-UX HP C?
+@@ -111,7 +111,7 @@ int main()
+ _EOF_
+       $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
+       if test $? -eq 0; then
+-        CFLAGS_OPT='-O3'
++        CFLAGS_OPT=''
+         echo "  GNU C ($CFLAGS_OPT)"
+       # Special Mac OS X shared library "ld" option?
+         if test ` uname -s 2> /dev/null ` = 'Darwin'; then
+diff -rup unix-orig/Makefile unix/Makefile
+--- a/unix-orig/Makefile       2021-04-16 10:25:03.000863878 +0000
++++ b/unix/Makefile    2021-04-16 10:47:31.658299278 +0000
+@@ -47,7 +47,7 @@ LD = $(CC)#  must match, else "unresolved
+ AS = as
+ LOC = $(D_USE_BZ2) $(LOCAL_UNZIP)
+ AF = $(LOC)
+-CFLAGS = -O
++CFLAGS = 
+ CF_NOOPT = -I. -I$(IZ_BZIP2) -DUNIX $(LOC)
+ CF = $(CFLAGS) $(CF_NOOPT)
+ LFLAGS1 =
+@@ -594,12 +594,12 @@ generic_shlib:   unix_make
+       @echo\
+  'which is UnZip linked with the DLL).  This target is an example only.'
+       @echo ""
+-      $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC -DDLL"
++      $(MAKE) objsdll CC=gcc CFLAGS="-Wall -fPIC -DDLL"
+       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)
+       $(RM) libunzip.so.0 libunzip.so
+       $(LN) -s libunzip.so.0.4 libunzip.so.0
+       $(LN) -s libunzip.so.0 libunzip.so
+-      gcc -c -O unzipstb.c
++      gcc -c unzipstb.c
+       gcc -o unzip_shlib unzipstb.o -L. -lunzip
+ 
+ #----------------------------------------------------------------------------
+@@ -775,7 +775,7 @@ freebsd:           unix_make
+ # with "echo" instead).
+ #
+ gcc:          unix_make
+-      $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O3" LF2=""
++      $(MAKE) unzips CC=gcc LD=gcc CFLAGS="" LF2=""
+ 
+ # Heurikon HK68 (68010), UniPlus+ System V 5.0, Green Hills C-68000
+ hk68:         unix_make
+@@ -792,7 +792,7 @@ isc:               unix_make
+ isc_gcc:      unix_make
+       $(MAKE) unzips AS=gcc CC=gcc LD=gcc CRCA_O=crc_gcc$O \
+        LF="-shlib $(LF)" SL="-shlib $(SL)" FL="-shlib $(FL)" LF2="" \
+-       CFLAGS="-O3" LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM 
-DNO_LCHOWN -DNO_LCHMOD $(LOC)" \
++       CFLAGS="" LOC="-DSYSV -DASM_CRC -DNO_UID_GID -DNEED_PTEM -DNO_LCHOWN 
-DNO_LCHMOD $(LOC)" \
+        AF="-DNO_UNDERLINE -Djecxz=jcxz -DALIGNMENT='.align 16' $(AF)"
+       $(STRIP) $(UNZIPS)
+ 
+@@ -808,7 +808,7 @@ isi:               unix_make
+ linux:                unix_make
+       @echo 'NOTE:  use linux_noasm target for non-Intel Linux compiles.'
+       $(MAKE) unzips CC=gcc LD=gcc AS=gcc\
+-       CFLAGS="-O3 -Wall -DASM_CRC"\
++       CFLAGS="-Wall -DASM_CRC"\
+        AF="-Di386 $(AF)" CRCA_O=crc_gcc$O
+ # GRR:  this echo is pointless; if user gets this far, no difference to 
install
+ #     @echo 'Be sure to use the install_asm target rather than the install 
target'
+@@ -818,14 +818,14 @@ linux_asm:       linux
+ # Linux (Posix, approximately SysV):  virtually any version since before 0.96,
+ # for any platform.  Change "-O" to "-O3" or whatever, as desired...
+ linux_noasm:  unix_make
+-      $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-O -Wall"
++      $(MAKE) unzips CC=gcc LD=gcc CFLAGS="-Wall"
+ 
+ # Linux with lcc compiler:  __inline__ (stat.h) not recognized, and must edit
+ # /usr/include/gnu/types.h to get rid of "long long" if __LCC__ defined.  -O3
+ # (or -O2 or -O) is ignored.  [GRR 960828: test target only]
+ #
+ linux_lcc:    unix_make
+-      $(MAKE) unzips CC=lcc LD=lcc CFLAGS="-O3 -Wall -D__inline__= "
++      $(MAKE) unzips CC=lcc LD=lcc CFLAGS="-Wall -D__inline__= "
+ 
+ # Linux host with go32 (djgpp) cross-compiler (go32crs.tgz) for 32-bit DOS.
+ linux_dos:    unix_make
+@@ -844,7 +844,7 @@ linux_dos: unix_make
+ # library).
+ #
+ linux_shlib:  unix_make
+-      $(MAKE) objsdll CC=gcc CFLAGS="-O3 -Wall -fPIC"\
++      $(MAKE) objsdll CC=gcc CFLAGS="-Wall -fPIC"\
+        LOC="-DDLL -DASM_CRC $(LOC)"\
+        AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O
+       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
+@@ -858,7 +858,7 @@ linux_shlib:       unix_make
+ # instead of the original UnZip version.  (libz was libgz prior to 0.94)
+ linux_shlibz: unix_make
+       $(MAKE) objsdll CC=gcc AS=gcc AF="-fPIC -Di386 $(AF)" CRCA_O=crc_gcc$O\
+-       CFLAGS="-O3 -Wall -fPIC" LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
++       CFLAGS="-Wall -fPIC" LOC="-DDLL -DUSE_ZLIB -DASM_CRC $(LOC)"
+       gcc -shared -Wl,-soname,libunzip.so.0 -o libunzip.so.0.4 $(OBJSDLL)\
+        crc_gcc.pic.o
+       ln -sf libunzip.so.0.4 libunzip.so.0
+@@ -871,7 +871,7 @@ lynx:              unix_make
+ 
+ # Macintosh MacOS X (Unix-compatible enviroment), using standard compiler
+ macosx:       unix_make
+-      $(MAKE) unzips CFLAGS="-O3 -Wall -DBSD" LF2=""
++      $(MAKE) unzips CFLAGS="-Wall -DBSD" LF2=""
+       $(STRIP) $(UNZIPS)
+ 
+ # Macintosh MacOS X (Unix-compatible enviroment), using gcc
diff --git a/meta/recipes-extended/unzip/unzip_6.0.bb 
b/meta/recipes-extended/unzip/unzip_6.0.bb
index 0c56a39d92..ec69508eea 100644
--- a/meta/recipes-extended/unzip/unzip_6.0.bb
+++ b/meta/recipes-extended/unzip/unzip_6.0.bb
@@ -26,6 +26,7 @@ SRC_URI = 
"${SOURCEFORGE_MIRROR}/infozip/UnZip%206.x%20%28latest%29/UnZip%206.0/
        file://CVE-2019-13232_p1.patch \
        file://CVE-2019-13232_p2.patch \
        file://CVE-2019-13232_p3.patch \
+       file://unzip_optimization.patch \
 "
 UPSTREAM_VERSION_UNKNOWN = "1"
 
-- 
2.20.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#150786): 
https://lists.openembedded.org/g/openembedded-core/message/150786
Mute This Topic: https://lists.openembedded.org/mt/82287146/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to