aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2018-07-11 19:28:54 +0200
committerFelix Fietkau <nbd@nbd.name>2018-07-13 17:22:53 +0200
commit47b42137ce1e931ae5871952b1f98438396f5e07 (patch)
tree3583ef7265882a0721d2f4a26f862047c247c934
parentef96d1e34a990871c912938c336f51a510b1e32f (diff)
downloadupstream-47b42137ce1e931ae5871952b1f98438396f5e07.tar.gz
upstream-47b42137ce1e931ae5871952b1f98438396f5e07.tar.bz2
upstream-47b42137ce1e931ae5871952b1f98438396f5e07.zip
dropbear: compile with LTO enabled
Reduces size of the .ipk on MIPS from 87k to 84k Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/dropbear/Makefile4
-rw-r--r--package/network/services/dropbear/patches/160-lto-jobserver.patch33
2 files changed, 35 insertions, 2 deletions
diff --git a/package/network/services/dropbear/Makefile b/package/network/services/dropbear/Makefile
index 742e538ff5..515434dc2f 100644
--- a/package/network/services/dropbear/Makefile
+++ b/package/network/services/dropbear/Makefile
@@ -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
index 0000000000..bb94492833
--- /dev/null
+++ b/package/network/services/dropbear/patches/160-lto-jobserver.patch
@@ -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)
+