summaryrefslogtreecommitdiff
path: root/build_static_example.sh
blob: 5c0e5fab5d7c80a73144b5f291ccd30b27a14263 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh -e

BUILDFLAG=""

#BUILDFLAG="--build=i686"
#export CC="i686-gcc"
# -mpreferred-stack-boundary=2 can be used to prevent gcc 4.2.x
# from aligning stack to 16 bytes. (Which is gcc's way of supporting SSE).
# For me it saves about 6k of text segment.
# This may be unsafe if your libc expects 16 byte stack alignment
# on function entry.

export CC="x86_64-gcc"

export CFLAGS="-Os\
 -fomit-frame-pointer\
 -static\
 -static-libgcc\
 -ffunction-sections -fdata-sections\
 -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1\
 -fno-unwind-tables\
 -fno-asynchronous-unwind-tables\
 -Wl,--gc-sections\
 -Wl,-Map=strace.mapfile\
"

autoreconf -i -f
./configure $BUILDFLAG #--enable-maintainer-mode
make CC="$CC" CFLAGS="$CFLAGS"