Minimal changes to make the "freeze" tool work again.
There are other issues left, but these were basics (e.g. keys().sort()).
diff --git a/Python/ast.c b/Python/ast.c
index b34411b..b313ef2 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -193,8 +193,11 @@
     if (flags && flags->cf_flags & PyCF_SOURCE_IS_UTF8) {
         c.c_encoding = "utf-8";
         if (TYPE(n) == encoding_decl) {
+#if 0
             ast_error(n, "encoding declaration in Unicode string");
             goto error;
+#endif
+            n = CHILD(n, 0);
         }
     } else if (TYPE(n) == encoding_decl) {
         c.c_encoding = STR(n);