Found it.
Looks like XML_Saving_Archive::emit_token_val() line 769 of src/Archive.cc was adding its own close quote.
$ diff -u src/Archive.cc-ORIG src/Archive.cc
--- src/Archive.cc-ORIG 2025-02-02 15:07:35.000000000 -0600
+++ src/Archive.cc 2025-02-02 15:07:24.000000000 -0600
@@ -766,7 +766,7 @@
Assert1(fun);
save_Function_name(*fun);
}
- out << "\"";
+// out << "\"";
break;
default: FIXME;
I don't know if this will break anything else.
And the nulls at the end of the XML file (\0 \0 \0 \0 LF) are there on purpose.
Is it still an XML file? (rhetorical question)
-- Mike Hall