compat: enforce distinguishable file names in symbol table

To make it possible to tell apart the static symbols in files built a
second time for compat guest support, arrange for their source file
names to be prefixed by a suitable path. We can't do this without
explicit .file directives, since gcc has always been stripping paths
from file names handed to the internally generated .file directive.
However, we can leverage __FILE__ if we make sure the second instance
gets compiled out of other than the very directory the wrapper sits in.

Where suitable, remove the long redundant explicit inclusions of
xen/config.h at once.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Jan Beulich committed 2015-11-03 18:07:20 +01:00
1 parent d37d63d4b5
commit 8b6ef9c152
14 files changed
+31 -26

No files matched your search

+9 -2
View File
@@ -86,8 +86,7 @@ AFLAGS-$(clang) += -no-integrated-as
ALL_OBJS := $(ALL_OBJS-y)
# Get gcc to generate the dependencies for us.
CFLAGS-y += -MMD -MF .$(@F).d
DEPS = .*.d
CFLAGS-y += -MMD -MF $(@D)/.$(@F).d
CFLAGS += $(CFLAGS-y)
@@ -103,6 +102,14 @@ LDFLAGS += $(LDFLAGS-y)
include Makefile
DEPS = .*.d
define gendep
ifneq ($(1),$(subst /,:,$(1)))
DEPS += $(dir $(1)).$(basename $(notdir $(1))).d
endif
endef
$(foreach o,$(filter-out %/,$(obj-y)),$(eval $(call gendep,$(o))))
# Ensure each subdirectory has exactly one trailing slash.
subdir-n := $(patsubst %,%/,$(patsubst %/,%,$(subdir-n) $(subdir-)))
subdir-y := $(patsubst %,%/,$(patsubst %/,%,$(subdir-y)))
+4 -4
View File
@@ -13,7 +13,7 @@ obj-y += bitops.o
obj-bin-y += bzimage.init.o
obj-bin-y += clear_page.o
obj-bin-y += copy_page.o
obj-y += compat.o
obj-y += compat.o x86_64/compat.o
obj-$(CONFIG_KEXEC) += crash.o
obj-y += debug.o
obj-y += delay.o
@@ -25,7 +25,6 @@ obj-y += domain_page.o
obj-y += e820.o
obj-y += extable.o
obj-y += flushtlb.o
obj-y += platform_hypercall.o
obj-y += i387.o
obj-y += i8259.o
obj-y += io_apic.o
@@ -37,14 +36,15 @@ obj-y += microcode_amd.o
obj-y += microcode_intel.o
# This must come after the vendor specific files.
obj-y += microcode.o
obj-y += mm.o
obj-y += mm.o x86_64/mm.o
obj-y += monitor.o
obj-y += mpparse.o
obj-y += nmi.o
obj-y += numa.o
obj-y += pci.o
obj-y += percpu.o
obj-y += physdev.o
obj-y += physdev.o x86_64/physdev.o
obj-y += platform_hypercall.o x86_64/platform_hypercall.o
obj-y += psr.o
obj-y += setup.o
obj-y += shutdown.o
-4
View File
@@ -2,7 +2,6 @@ subdir-y += compat
obj-bin-y += entry.o
obj-bin-y += gpr_switch.o
obj-y += mm.o
obj-y += traps.o
obj-y += machine_kexec.o
obj-y += pci.o
@@ -10,10 +9,7 @@ obj-y += acpi_mmcfg.o
obj-y += mmconf-fam10h.o
obj-y += mmconfig_64.o
obj-y += mmconfig-shared.o
obj-y += compat.o
obj-y += domain.o
obj-y += physdev.o
obj-y += platform_hypercall.o
obj-y += cpu_idle.o
obj-y += cpufreq.o
obj-bin-y += kexec_reloc.o
+2 -1
View File
@@ -2,7 +2,8 @@
* compat.c
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/hypercall.h>
#include <compat/xen.h>
#include <compat/physdev.h>
+2 -1
View File
@@ -16,7 +16,8 @@
* with this program; If not, see <http://www.gnu.org/licenses/>.
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/lib.h>
#include <xen/init.h>
#include <xen/mm.h>
+2 -1
View File
@@ -2,7 +2,8 @@
* physdev.c
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/types.h>
#include <xen/guest_access.h>
#include <compat/xen.h>
+2 -1
View File
@@ -2,7 +2,8 @@
* platform_hypercall.c
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/lib.h>
#include <compat/platform.h>
+1 -1
View File
@@ -63,7 +63,7 @@ obj-$(perfc) += perfc.o
obj-$(crash_debug) += gdbstub.o
obj-$(xenoprof) += xenoprof.o
subdir-$(CONFIG_COMPAT) += compat
obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall.o tmem_xen.o xlat.o)
subdir-$(x86_64) += hvm
-6
View File
@@ -1,6 +0,0 @@
obj-y += domain.o
obj-y += kernel.o
obj-y += memory.o
obj-y += multicall.o
obj-y += xlat.o
obj-y += tmem_xen.o
+2 -1
View File
@@ -3,7 +3,8 @@
*
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/lib.h>
#include <xen/sched.h>
#include <xen/domain.h>
+2 -1
View File
@@ -2,7 +2,8 @@
* kernel.c
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/init.h>
#include <xen/lib.h>
#include <xen/errno.h>
+2 -1
View File
@@ -1,4 +1,5 @@
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/types.h>
#include <xen/hypercall.h>
#include <xen/guest_access.h>
+2 -1
View File
@@ -2,7 +2,8 @@
* multicall.c
*/
#include <xen/config.h>
asm(".file \"" __FILE__ "\"");
#include <xen/types.h>
#include <xen/multicall.h>
#include <xen/trace.h>
+1 -1
View File
@@ -58,7 +58,7 @@ compat/%.h: compat/%.i Makefile $(BASEDIR)/tools/compat-build-header.py
mv -f $@.new $@
compat/%.i: compat/%.c Makefile
$(CPP) $(filter-out -M% .%.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $<
$(CPP) $(filter-out -M% %.d -include %/include/xen/config.h,$(CFLAGS)) $(cppflags-y) -o $@ $<
compat/%.c: public/%.h xlat.lst Makefile $(BASEDIR)/tools/compat-build-source.py
mkdir -p $(@D)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.