ifneq ($(LLVM),) # clang only wants to see -no-pie during linking. Here, we don't have a separate # linking stage, so a compiler warning is unavoidable without (wastefully) # restructuring the Makefile. Avoid this by simply disabling that warning.
CFLAGS += -Wno-unused-command-line-argument
endif
endif
# x86_64 users should be encouraged to install 32-bit libraries
ifeq ($(CAN_BUILD_I386)$(CAN_BUILD_X86_64),01)
all: warn_32bit_failure
warn_32bit_failure:
@echo "Warning: you seem to have a broken 32-bit build"2>&1; \
echo "environment. This will reduce test coverage of 64-bit"2>&1; \
echo "kernels. If you are using a Debian-like distribution,"2>&1; \
echo "try:"; 2>&1; \
echo ""; \
echo " apt-get install gcc-multilib libc6-i386 libc6-dev-i386"; \
echo ""; \
echo "If you are using a Fedora-like distribution, try:"; \
echo ""; \
echo " yum install glibc-devel.*i686"; \
echo ""; \
echo "If you are using a SUSE-like distribution, try:"; \
echo ""; \
echo " zypper install gcc-32bit glibc-devel-static-32bit"; \ exit0;
endif
# Add an additional file to the source file list for a given target, and also # add a Makefile dependency on that same file. However, do these separately, so # that the compiler invocation ("$(CC) file1.c file2.S") is not combined with # the dependencies ("header3.h"), because clang, unlike gcc, will not accept # header files as an input to the compiler invocation.
define extra-files
$(OUTPUT)/$(1): EXTRA_FILES := $(2)
$(OUTPUT)/$(1): $(2)
endef
# check_initial_reg_state is special: it needs a custom entry, and it # needs to be static so that its interpreter doesn't destroy its initial # state.
$(OUTPUT)/check_initial_reg_state_32: CFLAGS += -Wl,-ereal_start -static
$(OUTPUT)/check_initial_reg_state_64: CFLAGS += -Wl,-ereal_start -static
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.