genode/base/mk/spec-x86_64.mk
Alexander Boettcher 6994f6a8c5 Fix binary size for 64bit
Every 64-bit binary is effectively 4M too big currently [0]. The GNU linker ld
aligns the text section of the binary to the maximum page size. On i386
the default section alignment is fixed typically to 4K.

Avoid wasting mainly 4M on x86_64 by telling the linker the max page size to
be 4K.

[0] http://sourceware.org/ml/binutils/2009-04/msg00099.html
2012-09-05 15:06:52 +02:00

25 lines
539 B
Makefile

#
# Specifics for 64-bit x86
#
SPECS += x86 64bit
#
# x86-specific Genode headers
#
REP_INC_DIR += include/x86
REP_INC_DIR += include/x86_64
CC_MARCH ?= -m64
#
# Avoid wasting almost 4 MiB by telling the linker that the max page size is
# 4K. Otherwise, the linker would align the text segment to a 4M boundary,
# effectively adding 4M of zeros to each binary.
#
# See http://sourceware.org/ml/binutils/2009-04/msg00099.html
#
LD_MARCH ?= -melf_x86_64 -z max-page-size=0x1000
include $(call select_from_repositories,mk/spec-64bit.mk)