genode/base-linux/mk/spec-linux.mk
Torsten Hilbrich ae41acec27 Hardening compilation support for 64bit Linux
Without this patch the compilation failed with:

/usr/bin/ld: main.o: relocation R_X86_64_32S against
`vtable for Genode::Dataspace' can not be used when making a shared object;
recompile with -fPIC
main.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[6]: *** [init] Error 1

For this patch the use of the hardening tool chain must be indicated
using the "hardening_tool_chain" SPECS entry within the file
<build>/etc/specs.conf

Fixes #79
2012-06-21 00:50:18 +02:00

22 lines
639 B
Makefile

#
# Specifics for the Linux-specific Genode components
#
#
# Startup code to be used when building a program and linker script that is
# specific for Linux. We also reserve the thread-context area via a segment in
# the program under Linux to prevent clashes with vdso.
#
ifneq ($(USE_HOST_LD_SCRIPT),yes)
PRG_LIBS += startup
LD_TEXT_ADDR ?= 0x01000000
LD_SCRIPT_STATIC = $(call select_from_repositories,src/platform/genode.ld) \
$(call select_from_repositories,src/platform/context_area.nostdlib.ld)
else
LD_SCRIPT_STATIC =
endif
ifneq ($(filter hardening_tool_chain, $(SPECS)),)
CC_OPT += -fPIC
endif