ae41acec27
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
26 lines
929 B
Makefile
26 lines
929 B
Makefile
#
|
|
# Support for using standard C++ headers for Genode programs
|
|
#
|
|
|
|
#
|
|
# Add the location of the compiler's C++ headers to search path
|
|
#
|
|
# We add all header locations that have "c++" or "include-fixed" to the search
|
|
# path. The 'c++' subdirectory contains the actual standard C++ headers.
|
|
# However, for using them together with Boost, we need to access 'limits.h' as
|
|
# provided within the 'include-fixed' location.
|
|
#
|
|
INC_DIR += $(shell echo "int main() {return 0;}" |\
|
|
LANG=C $(CXX) -x c++ -v -E - 2>&1 |\
|
|
sed '/^\#include <\.\.\.> search starts here:/,/^End of search list/!d' |\
|
|
grep "c++")
|
|
|
|
#
|
|
# Link libstdc++ that comes with the tool chain
|
|
#
|
|
ifneq ($(filter hardening_tool_chain, $(SPECS)),)
|
|
EXT_OBJECTS += $(shell $(CUSTOM_CXX_LIB) $(CC_MARCH) -print-file-name=libstdc++.so)
|
|
else
|
|
EXT_OBJECTS += $(shell $(CUSTOM_CXX_LIB) $(CC_MARCH) -print-file-name=libstdc++.a)
|
|
endif
|