diff --git a/xen/Rules.mk b/xen/Rules.mk index bf19d20ac7..433dad3e23 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -42,10 +42,10 @@ ALL_OBJS-y += $(BASEDIR)/xsm/built_in.o ALL_OBJS-y += $(BASEDIR)/arch/$(TARGET_ARCH)/built_in.o ALL_OBJS-$(x86) += $(BASEDIR)/crypto/built_in.o -CFLAGS += -fno-builtin -fno-common +CFLAGS += -nostdinc -fno-builtin -fno-common CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith CFLAGS += -pipe -g -D__XEN__ -include $(BASEDIR)/include/xen/config.h -CFLAGS += -nostdinc +CFLAGS += '-D__OBJECT_FILE__="$@"' CFLAGS-$(XSM_ENABLE) += -DXSM_ENABLE CFLAGS-$(FLASK_ENABLE) += -DFLASK_ENABLE diff --git a/xen/arch/x86/mm/guest_walk.c b/xen/arch/x86/mm/guest_walk.c index 773454d95f..ac28122c8d 100644 --- a/xen/arch/x86/mm/guest_walk.c +++ b/xen/arch/x86/mm/guest_walk.c @@ -21,6 +21,9 @@ * along with this program; If not, see . */ +/* Allow uniquely identifying static symbols in the 3 generated objects. */ +asm(".file \"" __OBJECT_FILE__ "\""); + #include #include #include diff --git a/xen/arch/x86/mm/hap/guest_walk.c b/xen/arch/x86/mm/hap/guest_walk.c index 66f0010c4a..11c1b35266 100644 --- a/xen/arch/x86/mm/hap/guest_walk.c +++ b/xen/arch/x86/mm/hap/guest_walk.c @@ -18,6 +18,8 @@ * this program; If not, see . */ +/* Allow uniquely identifying static symbols in the 3 generated objects. */ +asm(".file \"" __OBJECT_FILE__ "\""); #include #include diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index b54835dfe5..58f7e7216e 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -20,7 +20,9 @@ * along with this program; If not, see . */ -#include +/* Allow uniquely identifying static symbols in the 3 generated objects. */ +asm(".file \"" __OBJECT_FILE__ "\""); + #include #include #include