[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Xen 4.4 & 4.5 - Various problems (mostly undefined references to libxenctrl functions)



Hello,

I'm working with Xen to develop new communication modules to improve data transfer between xen domains. As I had a really old version of Xen (installed in 2012 !!) and some functionnalities didn't work (sharing already allocated pages with grant references), I reinstalled my entire system (new linux, new xen). Therefore, I installed Ubuntu LTS 14.04 and the xen hypervisor coming with its packages (xen 4.4). I had no problem to create a virtual machine, but when I tried to compile the test program which uses my modules, the battle began. Here is my compilation line :

gcc gntring3_read_async.c /home/fremals/GVirtus9/modules/gntring/libgntring4.o -lxenctrl -o ring3_read_async -lm -I /home/fremals/GVirtus9/modules/

libgntring4.o contains the code using libxenctrl : xc_interface_open, xc_map_foreign_pages and xc_interface_close. With Xen 4.4, I had no problem to compile libgntring.o, but when I tried to compile ring3_read_async, I got the message error :
libgntring4.c:(.text+0x328): undefined reference to  xc_interface_open(xentoollog_logger*, xentoollog_logger*, unsigned int) Â
libgntring4.c:(.text+0x328): undefined reference to  xc_map_foreign_pages(arg list) Â
libgntring4.c:(.text+0x365): undefined reference to  xc_interface_close(xc_interface_core*) Â

I checked libxenctrl.so with nm and it was empty. However, libxenctrl.a had all needed symbols. I tried again with the following command line :Â
gcc gntring3_read_async.c /home/fremals/GVirtus9/modules/gntring/libgntring4.o /usr/local/lib/libxenctrl.a -o ring3_read_async -lm -I /home/fremals/GVirtus9/modules/
and the compilation fails with only two errors :
libgntring4.c:(.text+0x328): undefined reference to  xc_interface_open(xentoollog_logger*, xentoollog_logger*, unsigned int) Â
libgntring4.c:(.text+0x365): undefined reference to  xc_interface_close(xc_interface_core*) Â
It found the xc_map_foreign_pages ! But not the other two functions. I thought that there could be a problem with libxenctrl, I therefore downloaded the xen source code and tried to compile the code of this tool but I had errors with xen headers (I didn't kept the errors).

At this point, I wanted to do things right and reinstall Xen from source code, not with an ubuntu package. I removed Xen 4.4 and took Xen 4.5.1. As I rapidly got an error with this code (I don't remind which one), I used Xen 4.5 instead. Once I succesfully installed xen, I tried to run my compilation again. This time with -lxenctrl. I had the same problem than before :
libgntring4.c:(.text+0x328): undefined reference to  xc_interface_open(xentoollog_logger*, xentoollog_logger*, unsigned int) Â
libgntring4.c:(.text+0x365): undefined reference to  xc_interface_close(xc_interface_core*) Â

To check that previous steps were all right, I tried to recompile libgntring4.o and it lead to new errors :
g++ -c -O3 -fPIC ../modules/gntring/libgntring4.c -o ../modules/gntring/libgntring4.o
In file included from /usr/local/include/xenctrl.h:50:0,
        Âfrom ../modules/gntring/libgntring4.c:12:
/usr/local/include/xen/platform.h:156:31: error: field âset_timeâ has incomplete type
    Âstruct xenpf_efi_time set_time;
               Â^
/usr/local/include/xen/platform.h:160:31: error: field âget_wakeup_timeâ has incomplete type
    Âstruct xenpf_efi_time get_wakeup_time;
               Â^
/usr/local/include/xen/platform.h:164:31: error: field âset_wakeup_timeâ has incomplete type
    Âstruct xenpf_efi_time set_wakeup_time;
               Â^
/usr/local/include/xen/platform.h:184:35: error: field âvendor_guidâ has incomplete type
      Âstruct xenpf_efi_guid vendor_guid;
                 Â^
make: *** [libgntring4.o] Erreur 1

I talked to some members of my team about the "unefined reference" problems, but no one knows what's the problem. Can I ask if someone have an idea of what's wrong here please ?

Best regards,

Sebastien Fremal


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.