dropbear: compile with LTO enabled
authorFelix Fietkau <nbd@nbd.name>
Wed, 11 Jul 2018 17:28:54 +0000 (19:28 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 13 Jul 2018 15:22:53 +0000 (17:22 +0200)
Reduces size of the .ipk on MIPS from 87k to 84k

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/dropbear/Makefile
package/network/services/dropbear/patches/160-lto-jobserver.patch [new file with mode: 0644]

index 742e538ff55668d059f5d4d9f88e647df09e12ec..515434dc2f3f953108eb8ebb343faa0cd45ffaaf 100644 (file)
@@ -86,8 +86,8 @@ CONFIGURE_ARGS += \
        $(if $(CONFIG_DROPBEAR_ZLIB),,--disable-zlib) \
        --enable-bundled-libtom
 
-TARGET_CFLAGS += -DARGTYPE=3 -ffunction-sections -fdata-sections
-TARGET_LDFLAGS += -Wl,--gc-sections
+TARGET_CFLAGS += -DARGTYPE=3 -ffunction-sections -fdata-sections -flto
+TARGET_LDFLAGS += -Wl,--gc-sections -flto=jobserver
 
 define Build/Configure
        $(Build/Configure/Default)
diff --git a/package/network/services/dropbear/patches/160-lto-jobserver.patch b/package/network/services/dropbear/patches/160-lto-jobserver.patch
new file mode 100644 (file)
index 0000000..bb94492
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -163,17 +163,17 @@ dropbearkey: $(dropbearkeyobjs)
+ dropbearconvert: $(dropbearconvertobjs)
+ dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile
+-      $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
++      +$(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
+ dbclient: $(HEADERS) $(LIBTOM_DEPS) Makefile
+-      $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS)
++      +$(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS)
+ dropbearkey dropbearconvert: $(HEADERS) $(LIBTOM_DEPS) Makefile
+-      $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS)
++      +$(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS)
+ # scp doesn't use the libs so is special.
+ scp: $(SCPOBJS)  $(HEADERS) Makefile
+-      $(CC) $(LDFLAGS) -o $@$(EXEEXT) $(SCPOBJS)
++      +$(CC) $(LDFLAGS) -o $@$(EXEEXT) $(SCPOBJS)
+ # multi-binary compilation.
+@@ -184,7 +184,7 @@ ifeq ($(MULTI),1)
+ endif
+ dropbearmulti$(EXEEXT): $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile
+-      $(CC) $(LDFLAGS) -o $@ $(MULTIOBJS) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
++      +$(CC) $(LDFLAGS) -o $@ $(MULTIOBJS) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
+ multibinary: dropbearmulti$(EXEEXT)