have configure check/add linker options to reduce size lost to padding
authorRich Felker <dalias@aerifal.cx>
Thu, 5 Nov 2015 02:39:13 +0000 (21:39 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 5 Nov 2015 02:39:13 +0000 (21:39 -0500)
based on patch by Denys Vlasenko. sorting sections and common data
symbols by alignment acts as an approximation for optimal packing,
which the linker does not actually support.

configure

index 1e5c4b32199e1afd21f55650903c721beae6d724..d04c860a811f4b866663bf7b451e61b0fa86e21e 100755 (executable)
--- a/configure
+++ b/configure
@@ -515,6 +515,12 @@ CFLAGS_AUTO="$CFLAGS_AUTO -include vis.h"
 CFLAGS_AUTO="${CFLAGS_AUTO# }"
 fi
 
+# Reduce space lost to padding for alignment purposes by sorting data
+# objects according to their alignment reqirements. This approximates
+# optimal packing.
+tryldflag LDFLAGS_AUTO -Wl,--sort-section,alignment
+tryldflag LDFLAGS_AUTO -Wl,--sort-common
+
 # Some patched GCC builds have these defaults messed up...
 tryldflag LDFLAGS_AUTO -Wl,--hash-style=both