Enable optimization for size by default
authorPiotr Dymacz <pepe2k@gmail.com>
Tue, 11 Apr 2017 18:17:25 +0000 (20:17 +0200)
committerPiotr Dymacz <pepe2k@gmail.com>
Tue, 11 Apr 2017 18:17:25 +0000 (20:17 +0200)
This saves few kB in code size.
Tested on all supported SOCs (built with LEDE upstream toolchain).

Makefile
u-boot/httpd/Makefile
u-boot/net/net.c

index 96add61292d3781aef0d2c755f1f72bd2a0ffabf..d2a0db1342e131a58c6c3e69e45917e80eff5ee6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -58,6 +58,15 @@ ifndef CROSS_COMPILE
 endif
 export CROSS_COMPILE
 
+# By default, optimization for size (-Os) is enabled, set below option
+# to n or remove it if you want only basic optimization (-O/-O1)
+# BUILD_OPTIMIZED = n
+
+ifneq ($(BUILD_OPTIMIZED), n)
+  BUILD_OPTIMIZED = y
+endif
+export BUILD_OPTIMIZED
+
 # ==========================================================================
 
 # =======================
index d78fa43530ca67d6a6573f4e63ad365ac185007e..247ffa472d42da4da890e10ead8b54db23bcbd3e 100644 (file)
@@ -4,6 +4,9 @@
 
 include $(TOPDIR)/config.mk
 
+# Suppress warnings when building with size optimization
+CFLAGS += -fno-strict-aliasing
+
 LIB   = libhttpd.a
 OBJS += uip.o \
        uip_arch.o \
index 639faf8e4df3fc85b9cc4e16e63b1dc6fb823050..0ab249d3b92b98703a86215ad1b0fa4d5c6527c5 100644 (file)
@@ -1383,8 +1383,6 @@ ushort getenv_VLAN(char *var){
 
 #if defined(CONFIG_CMD_HTTPD)
 
-#define BUF    ((struct uip_eth_hdr *)&uip_buf[0])
-
 void NetSendHttpd(void){
        volatile uchar *tmpbuf = NetTxPacket;
        int i;
@@ -1401,10 +1399,12 @@ void NetSendHttpd(void){
 }
 
 void NetReceiveHttpd(volatile uchar * inpkt, int len){
+       struct uip_eth_hdr *eth_hdr = (struct uip_eth_hdr *)uip_buf;
+
        memcpy(uip_buf, (const void *)inpkt, len);
        uip_len = len;
 
-       if(BUF->type == htons(UIP_ETHTYPE_IP)){
+       if(eth_hdr->type == htons(UIP_ETHTYPE_IP)){
                uip_arp_ipin();
                uip_input();
 
@@ -1412,7 +1412,7 @@ void NetReceiveHttpd(volatile uchar * inpkt, int len){
                        uip_arp_out();
                        NetSendHttpd();
                }
-       } else if(BUF->type == htons(UIP_ETHTYPE_ARP)){
+       } else if(eth_hdr->type == htons(UIP_ETHTYPE_ARP)){
                uip_arp_arpin();
 
                if(uip_len > 0){