Skip to content
Snippets Groups Projects
  • Tom Tromey's avatar
    54137725
    Fix version negotiation in libcc1 plugins · 54137725
    Tom Tromey authored
    This fixes version negotiation in the libcc1 plugins.  It's done in a
    simple way: the version number from the context object is now passed
    to base_gdb_plugin.
    
    The idea behind this is that when the client (gdb) requests version N,
    the plugin should respond with the newest version that it knows of
    that is backward compatible to N.  That is, the connection can be
    upgraded.  Note that the protocol does not change much, and no
    backward incompatibilities have ever been needed.
    
    The C plugin is also changed to advertise GCC_C_FE_VERSION_1.
    
    The version negotiation approach should of course be documented, but I
    did that in a subsequent patch, in order to only have one patch
    touching the 'include' directory and thus needing a merge to
    binutils-gdb.
    
    libcc1
    
    	* libcp1.cc (libcp1::libcp1): Use FE version number from context.
    	* libcc1.cc (libcc1::libcc1): Use FE version number from context.
    	(c_vtable): Use GCC_C_FE_VERSION_1.
    
    
    54137725
    History
    Fix version negotiation in libcc1 plugins
    Tom Tromey authored
    This fixes version negotiation in the libcc1 plugins.  It's done in a
    simple way: the version number from the context object is now passed
    to base_gdb_plugin.
    
    The idea behind this is that when the client (gdb) requests version N,
    the plugin should respond with the newest version that it knows of
    that is backward compatible to N.  That is, the connection can be
    upgraded.  Note that the protocol does not change much, and no
    backward incompatibilities have ever been needed.
    
    The C plugin is also changed to advertise GCC_C_FE_VERSION_1.
    
    The version negotiation approach should of course be documented, but I
    did that in a subsequent patch, in order to only have one patch
    touching the 'include' directory and thus needing a merge to
    binutils-gdb.
    
    libcc1
    
    	* libcp1.cc (libcp1::libcp1): Use FE version number from context.
    	* libcc1.cc (libcc1::libcc1): Use FE version number from context.
    	(c_vtable): Use GCC_C_FE_VERSION_1.