Fix gdbserver <library-list> and its #FIXED version="1.0"
authorJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 10 Jun 2015 16:29:05 +0000 (18:29 +0200)
committerJan Kratochvil <jan.kratochvil@redhat.com>
Wed, 10 Jun 2015 16:30:10 +0000 (18:30 +0200)
commit24c05f46059182f0c8768c6ebbb66b4ca3233ecc
treeef8c73db66f7c89897309c61234215ae1303d09e
parent51aad7cc44161ebbd2eea80647391c692ae330ac
Fix gdbserver <library-list> and its #FIXED version="1.0"

While reimplementing <library-list/> I found from expat-2.0.1-11.fc15.x86_64:

warning: while parsing target library list (at line 1): Required attribute "version" of <library-list-svr4> not specified

I believe the same bug has to apply for existing FSF gdbserver but I do not
have any <library-list/> platform to test it (I did not try to build MinGW).

features/library-list.dtd:
<!ATTLIST library-list  version CDATA   #FIXED  "1.0">

http://www.xml.com/pub/a/98/10/guide0.html?page=3 says:

In this case, the attribute is not required, but if it occurs, it must
have the specified value.

Which would suggest gdbserver is right but solib-target.c is wrong.  One could
also make gdbserver explicit for the version (if those 14 bytes are not of
a concern).

gdb/ChangeLog
2015-06-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

* solib-target.c (library_list_start_list): Do not dereference
variable version in its initialization.  Make the VERSION check handle
NULL.
(library_list_attributes): Make "version" GDB_XML_AF_OPTIONAL.

gdb/gdbserver/ChangeLog
2015-06-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

* server.c (handle_qxfer_libraries): Set `version' attribute for
<library-list>.
gdb/ChangeLog
gdb/gdbserver/ChangeLog
gdb/gdbserver/server.c
gdb/solib-target.c