[Xcb] Xprint build failure

Olivier Fourdan ofourdan at redhat.com
Tue May 19 01:28:22 PDT 2015


Hi Uli

I am trying to investigate this, and it seems this error occurs in newly added (generated) code (as compared to 1.11)

This generated code is because of commit e3ec1f7:

|  commit e3ec1f74637237ce500dfd0ca59f2e422da4e019
|  Author: Jaya Tiwari <tiwari.jaya18 at gmail.com>
|  Date:   Thu Jan 22 12:16:33 2015 -0500
|
|      Adding accessors for requests
|      
|      Added accessor functions for requests the same way they were added for
|      structs,events and replies.
|      Lists for replies have accessor functions now.
|      
|      Signed-off-by: Jaya Tiwari <tiwari.jaya18 at gmail.com>
|      Reviewed-by: Christian Linhart <chris at demorecorder.com>
|      
|      Comment from the Reviewer Christian Linhart:
|      I have tested your patch after fixing the issues with the patch-format.
|      It looks good:
|      * only adds new functions, and does not modify existing functions.
|        Therefore it is API and ABI compatible.
|      
|      * adds accessors for varsized-stuff in requests.
|        This is needed for server-side XCB and may be useful for implementing X11-protocol proxies.
|  
|  diff --git a/src/c_client.py b/src/c_client.py
|  index cce620f..8a2900c 100644
|  --- a/src/c_client.py
|  +++ b/src/c_client.py
|  @@ -3137,6 +3137,7 @@ def c_request(self, name):
|           if self.c_need_aux:
|               _c_request_helper(self, name, 'xcb_void_cookie_t', True, False, True)
|               _c_request_helper(self, name, 'xcb_void_cookie_t', True, True, True)
|  +        _c_accessors(self, name, name)
|   
|       # We generate the manpage afterwards because _c_type_setup has been called.
|       # TODO: what about aux helpers?
  
Removing that added line fixes the compilation of xprint. 

I am not sure why this was added, so this is probably not the right fix, the appropriate fix would be to generate correct C code instead (by passing the expected params), so this is not the end of the investigation, the root cause probably lies in a prior commit.

Cheers,
Olivier


----- Original Message -----
> Hi everyone,
> 
> it seems like --enable-xprint causes a build failure in current Git master:
> 
> 
>   CC       xprint.lo
> xprint.c: In function 'xcb_x_print_print_put_document_data_options_len':
> xprint.c:1345:35: error: too few arguments to function
> 'xcb_x_print_print_put_document_data_doc_format_end'
>      xcb_generic_iterator_t prev =
>      xcb_x_print_print_put_document_data_doc_format_end(R);
>                                    ^
> xprint.c:1331:1: note: declared here
>  xcb_x_print_print_put_document_data_doc_format_end (const
>  xcb_x_print_print_put_document_data_request_t *R  /**< */,
>  ^
> xprint.c: In function 'xcb_x_print_print_put_document_data_options':
> xprint.c:1352:35: error: too few arguments to function
> 'xcb_x_print_print_put_document_data_doc_format_end'
>      xcb_generic_iterator_t prev =
>      xcb_x_print_print_put_document_data_doc_format_end(R);
>                                    ^
> xprint.c:1331:1: note: declared here
>  xcb_x_print_print_put_document_data_doc_format_end (const
>  xcb_x_print_print_put_document_data_request_t *R  /**< */,
>  ^
> xprint.c: In function 'xcb_x_print_print_put_document_data_options_end':
> xprint.c:1368:36: error: too few arguments to function
> 'xcb_x_print_print_put_document_data_doc_format_end'
>      xcb_generic_iterator_t child =
>      xcb_x_print_print_put_document_data_doc_format_end(R);
>                                     ^
> xprint.c:1331:1: note: declared here
>  xcb_x_print_print_put_document_data_doc_format_end (const
>  xcb_x_print_print_put_document_data_request_t *R  /**< */,
>  ^
> Makefile:981: recipe for target 'xprint.lo' failed
> make[2]: *** [xprint.lo] Error 1
> 
> 
> I'm not using xprint, but just --enable everything I can to catch things like
> this.
> I haven't looked into this, perhaps someone else has an idea (and has more
> clue about the clue)?
> 
> Cheers,
> Uli
> --
> 99 little bugs in the code
> 99 little bugs in the code
> Take one down, patch it around
> 117 little bugs in the code
>   -- @irqed
> _______________________________________________
> Xcb mailing list
> Xcb at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xcb


More information about the Xcb mailing list