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 1e5c4b3..d04c860 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