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

Re: [Xen-devel] xl: Enable 'xl console' in 'x86_64'



On 04/28/2010 07:38 PM, Yu Zhiguo wrote:
> Hi Jeremy
>
> Jeremy Fitzhardinge wrote:
>   
>>>  
>>> +    if (uname(&utsbuf) != -1) {
>>> +        if (!strcmp(utsbuf.machine, "x86_64") || !strcmp(utsbuf.machine, 
>>> "ia64"))
>>> +            XENCONSOLE = "/usr/lib64/xen/bin/xenconsole";
>>> +    }
>>>   
>>>       
>> Won't this fail if the tools were build 32bit, but being run on a 64bit
>> machine?  Why not just look in both places?  Or fix the xenconsole to
>> install in /usr/lib regardless of architecture (it isn't a library, so
>> nothing will care about its architecture).
>>     
> Thanks for you reply. I think just look up both location is better.
>   

Hm, I think just installing xenconsole (and the other executables) in a
consistent (architecture-independent) place is a better long-term fix. 
That said, hard-coding paths like this seems like it would be awkward
for anyone packaging this stuff (I think distros would prefer to put
this kind of thing in /usr/libexec?).

    J

> Please refer to the following.
>
> -------------
>
> 'xl console' cannot be used on arch 'x86_64',
> because the path of 'xenconsole' is wrong.
> Fix this bug.
>
> Signed-off-by: Yu Zhiguo <yuzg@xxxxxxxxxxxxxx>
>
> diff -r 9a1d7caa2024 -r 49176e864ca7 tools/libxl/libxl.c
> --- a/tools/libxl/libxl.c     Mon Apr 26 12:13:23 2010 +0100
> +++ b/tools/libxl/libxl.c     Thu Apr 29 18:36:28 2010 +0800
> @@ -741,15 +741,19 @@
>  {
>      struct stat st;
>      const char *XENCONSOLE = "/usr/lib/xen/bin/xenconsole";
> +    const char *XENCONSOLE64 = "/usr/lib64/xen/bin/xenconsole";
>      char *cmd;
>  
> -    if (stat(XENCONSOLE, &st) != 0) {
> -        XL_LOG(ctx, XL_LOG_ERROR, "could not access %s", XENCONSOLE);
> +    if (!stat(XENCONSOLE, &st)) {
> +        cmd = libxl_sprintf(ctx, "%s %d --num %d", XENCONSOLE, domid, 
> cons_num);
> +        return (system(cmd) != 0) ? ERROR_FAIL : 0;
> +    } else if (!stat(XENCONSOLE64, &st)) {
> +        cmd = libxl_sprintf(ctx, "%s %d --num %d", XENCONSOLE64, domid, 
> cons_num);
> +        return (system(cmd) != 0) ? ERROR_FAIL : 0;
> +    } else {
> +        XL_LOG(ctx, XL_LOG_ERROR, "could not access %s and %s", XENCONSOLE, 
> XENCONSOLE64);
>          return ERROR_FAIL;
>      }
> -
> -    cmd = libxl_sprintf(ctx, "%s %d --num %d", XENCONSOLE, domid, cons_num);
> -    return (system(cmd) != 0) ? ERROR_FAIL : 0;
>  }
>  
>  static char ** libxl_build_device_model_args(struct libxl_ctx *ctx,
>
>   


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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