]> xenbits.xensource.com Git - people/vhanquez/xen-unstable.git/commitdiff
libxc: Use .opic to build xenctrl_osdep_ENOSYS.so
authorKeir Fraser <keir@xen.org>
Fri, 24 Dec 2010 10:17:49 +0000 (10:17 +0000)
committerKeir Fraser <keir@xen.org>
Fri, 24 Dec 2010 10:17:49 +0000 (10:17 +0000)
Resolves build error:
    /usr/bin/ld: xenctrl_osdep_ENOSYS.o: relocation R_X86_64_32
    against `a local symbol' can not be used when making a shared
    object; recompile with -fPIC
    xenctrl_osdep_ENOSYS.o: could not read symbols: Bad value
    collect2: ld returned 1 exit status

Clean up object files correctly too.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxc/Makefile

index d59a2f1e5de1ae62ab161c7245dcedfcd0982b41..a99f5c7e4c2089fd55ce9e518bdc3acdfc539d32 100644 (file)
@@ -62,6 +62,8 @@ GUEST_SRCS-$(CONFIG_X86)     += xc_dom_x86.c
 GUEST_SRCS-$(CONFIG_X86)     += xc_cpuid_x86.c
 GUEST_SRCS-$(CONFIG_IA64)    += xc_dom_ia64.c
 
+OSDEP_SRCS-y                 += xenctrl_osdep_ENOSYS.c
+
 -include $(XEN_TARGET_ARCH)/Makefile
 
 CFLAGS   += -Werror -Wmissing-prototypes
@@ -82,6 +84,9 @@ CTRL_PIC_OBJS := $(patsubst %.c,%.opic,$(CTRL_SRCS-y))
 GUEST_LIB_OBJS := $(patsubst %.c,%.o,$(GUEST_SRCS-y))
 GUEST_PIC_OBJS := $(patsubst %.c,%.opic,$(GUEST_SRCS-y))
 
+OSDEP_LIB_OBJS := $(patsubst %.c,%.o,$(OSDEP_SRCS-y))
+OSDEP_PIC_OBJS := $(patsubst %.c,%.opic,$(OSDEP_SRCS-y))
+
 LIB := libxenctrl.a
 ifneq ($(stubdom),y)
 LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR)
@@ -129,7 +134,8 @@ TAGS:
 clean:
        rm -rf *.rpm $(LIB) *~ $(DEPS) \
             $(CTRL_LIB_OBJS) $(CTRL_PIC_OBJS) \
-            $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS)
+            $(GUEST_LIB_OBJS) $(GUEST_PIC_OBJS) \
+            $(OSDEP_LIB_OBJS) $(OSDEP_PIC_OBJS)
 
 .PHONY: rpm
 rpm: build
@@ -190,8 +196,8 @@ libxenguest.so.$(MAJOR).$(MINOR): COMPRESSION_LIBS = $(call zlib-options,l)
 libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so
        $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenguest.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $(GUEST_PIC_OBJS) $(COMPRESSION_LIBS) -lz -lxenctrl $(PTHREAD_LIBS)
 
-xenctrl_osdep_ENOSYS.so: xenctrl_osdep_ENOSYS.o libxenctrl.so
-       $(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ xenctrl_osdep_ENOSYS.o -lxenctrl
+xenctrl_osdep_ENOSYS.so: $(OSDEP_PIC_OBJS) libxenctrl.so
+       $(CC) -g $(CFLAGS) $(LDFLAGS) $(SHLIB_LDFLAGS) -o $@ $(OSDEP_PIC_OBJS) -lxenctrl
 
 -include $(DEPS)