+2017-07-26 Yao Qi <yao.qi@linaro.org>
+
+ * NEWS: Mention it.
+ * features/Makefile (%.c: %.xml): Pass the xml file name to
+ command "maint print c-tdesc".
+ * target-descriptions.c (maint_print_c_tdesc_cmd): Get file
+ name from 'arg'.
+
2017-07-26 Yao Qi <yao.qi@linaro.org>
* target-descriptions.c (target_desc): Add ctor and dtor. Do
QStartupWithShell
Indicates whether the inferior must be started with a shell or not.
+* The "maintenance print c-tdesc" command now takes an optional
+ argument which is the file name of XML target description.
+
* New commands
set debug separate-debug-file
+2017-07-26 Yao Qi <yao.qi@linaro.org>
+
+ * gdb.texinfo (Maintenance Commands): Document optional
+ argument of "maint print c-tdesc".
+
2017-07-18 Yao Qi <yao.qi@linaro.org>
* gdb.texinfo (Maintenance Commands): Improve the doc to
Print the entire architecture configuration. The optional argument
@var{file} names the file where the output goes.
-@kindex maint print c-tdesc
+@kindex maint print c-tdesc @r{[}@var{file}@r{]}
@item maint print c-tdesc
-Print the current target description (@pxref{Target Descriptions}) as
-a C source file. The created source file is built into @value{GDBN}
-when @value{GDBN} is built again. This command is used by developers
-after they add or modify XML target descriptions.
+Print the target description (@pxref{Target Descriptions}) as
+a C source file. By default, the target description is for the current
+target, but if the optional argument @var{file} is provided, that file
+is used to produce the description. The @var{file} should be an XML
+document, of the form described in @ref{Target Description Format}.
+The created source file is built into @value{GDBN} when @value{GDBN} is
+built again. This command is used by developers after they add or
+modify XML target descriptions.
@kindex maint print dummy-frames
@item maint print dummy-frames
cfiles: $(CFILES)
%.c: %.xml
- $(GDB) -nx -q -batch \
- -ex "set tdesc filename $<" -ex 'maint print c-tdesc' > $@.tmp
+ $(GDB) -nx -q -batch -ex 'maint print c-tdesc $<' > $@.tmp
sh ../../move-if-change $@.tmp $@
# Other dependencies.
int ix, ix2, ix3;
int printed_field_type = 0;
- /* Use the global target-supplied description, not the current
- architecture's. This lets a GDB for one architecture generate C
- for another architecture's description, even though the gdbarch
- initialization code will reject the new description. */
- tdesc = current_target_desc;
+ if (args == NULL)
+ {
+ /* Use the global target-supplied description, not the current
+ architecture's. This lets a GDB for one architecture generate C
+ for another architecture's description, even though the gdbarch
+ initialization code will reject the new description. */
+ tdesc = current_target_desc;
+ filename = target_description_filename;
+ }
+ else
+ {
+ /* Use the target description from the XML file. */
+ filename = args;
+ tdesc = file_read_description_xml (filename);
+ }
+
if (tdesc == NULL)
error (_("There is no target description to print."));
- if (target_description_filename == NULL)
+ if (filename == NULL)
error (_("The current target description did not come from an XML file."));
- filename = lbasename (target_description_filename);
+ filename = lbasename (filename);
function = (char *) alloca (strlen (filename) + 1);
for (inp = filename, outp = function; *inp != '\0'; inp++)
if (*inp == '.')