Christoph Wedler <wedler(a)fmi.uni-passau.de> writes in xemacs-beta(a)xemacs.org:
 In order to make the generated auto-autoload files also work with
 XEmacs-20.{3,4}, 
O.K.
 I would suggest to add the following line as the first line of each
 generated auto-autoload file: 
 (unless (fboundp 'package-provide) (fset 'package-provide
'ignore)) 
Not O.K.  Why should this be done by autoload generation?
The `package-provide' call is due to _pkg.el:
  ;;;###autoload
  (package-provide 'gnus
                   :version 1.34
                   :type 'regular)
Any backwards compatibility on the `package-provide' should go there.
If there's a nit to be picked with the auto-autoloads files
themselves, I would start with the top:
  ;;; DO NOT MODIFY THIS FILE
  (if (featurep 'gnus-autoloads) (error "Already loaded"))
I put that there because I don't want those files being reloaded
without careful thought -- one must unload the feature first before
reloading the autoloads.
 You might say that these files are not supposed to be loaded by
 XEmacs-20.3, but the point is: XEmacs-20.3 *does* load files in
 ~/.xemacs/lisp/*/ automatically.  And if someone (e.g., package authors)
 want to use both XEmacs-20 and XEmacs-21, the files in these directories
 should work with both XEmacs-20 and XEmacs-21. 
Fair enough.
 (Well, they don't because files with some macros compiled in
XEmacs-21
 don't run in XEmacs-20, but that is another story...) 
There's a flag for that.  Martin's changes for 21.2.5 might have
introduced more bytecode incompatibilities, if so there should be a
flag for that too.