# SPDX-License-Identifier: GPL-2.0
java.lang.NullPointerException # Makefile for vdso32
java.lang.NullPointerException
include $(srctree)/lib/vdso/Makefile.include
# Same as cc-*option, but using CC_COMPAT instead of CC
ifeq ($(CONFIG_CC_IS_CLANG), y)
CC_COMPAT ?= $(CC)
CC_COMPAT += --target=arm-linux-gnueabi else
CC_COMPAT ?= $(CROSS_COMPILE_COMPAT)gcc
endif
# We cannot use the global flags to compile the vDSO files, the main reason # being that the 32-bit compiler may be older than the main (64-bit) compiler # and therefore may not understand flags set using $(cc-option ...). Besides, # arch-specific options should be taken from the arm Makefile instead of the # arm64 one. # As a result we set our own flags here.
# The 32-bit compiler does not provide 128-bit integers, which are used in # some headers that are indirectly included from the vDSO code. # This hack makes the compiler happy and should trigger a warning/error if # variables of such type are referenced.
VDSO_CFLAGS += -D__uint128_t='void*' # Silence some warnings coming from headers that operate on long's # (on GCC 4.8 or older, there is unfortunately no way to silence this warning)
VDSO_CFLAGS += $(call cc32-disable-warning,shift-count-overflow)
VDSO_CFLAGS += -Wno-int-to-pointer-cast
# Compile as THUMB2 or ARM. Unwinding via frame-pointers in THUMB2 is # unreliable.
ifeq ($(CONFIG_THUMB2_COMPAT_VDSO), y)
VDSO_CFLAGS += -mthumb -fomit-frame-pointer else
VDSO_CFLAGS += -marm
endif
# Borrow vdsomunge.c from the arm vDSO # We have to use a relative path because scripts/Makefile.host prefixes # $(hostprogs) with $(obj)
munge := ../../../arm/vdso/vdsomunge
hostprogs := $(munge)
# Strip rule for vdso.so
$(obj)/vdso.so: OBJCOPYFLAGS := -S
$(obj)/vdso.so: $(obj)/vdso32.so.dbg FORCE
$(call if_changed,objcopy)
$(obj)/vdso32.so.dbg: $(obj)/vdso.so.raw $(obj)/$(munge) FORCE
$(call if_changed,vdsomunge)
# Link rule for the .so file, .lds has to be first
$(obj)/vdso.so.raw: $(obj)/vdso.lds $(obj-vdso) FORCE
$(call if_changed,vdsold_and_vdso_check)
# Compilation rules for the vDSO sources
$(c-obj-vdso): %.o: %.c FORCE
$(call if_changed_dep,vdsocc)
$(c-obj-vdso-gettimeofday): %.o: %.c FORCE
$(call if_changed_dep,vdsocc_gettimeofday)
$(asm-obj-vdso): %.o: %.S FORCE
$(call if_changed_dep,vdsoas)
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.