On SUSE 11.4 (both 32 and 64 versions) the ediff for comparing buffers is broken for the xemacs that comes bundle (21.5.29.b604d235f028-7.3). It works for emacs.
The traceback for xemacs is:
Debugger entered–Lisp error: (invalid-state “Bogus value for `coding-system-for-read’” emacs-internal)
start-process-internal(“call-process” #<buffer “ediff-diff”> “diff” “/tmp/test2.f90hdBSzQ” “/tmp/test1.f90hdBX1I”)
apply(start-process-internal “call-process” #<buffer “ediff-diff”> “diff” ("/tmp/test2.f90hdBSzQ" “/tmp/test1.f90hdBX1I”))
call-process-internal(“diff” nil #<buffer “ediff-diff”> nil “/tmp/test2.f90hdBSzQ” “/tmp/test1.f90hdBX1I”)
apply(call-process-internal “diff” nil #<buffer “ediff-diff”> nil ("/tmp/test2.f90hdBSzQ" “/tmp/test1.f90hdBX1I”))
call-process(“diff” nil #<buffer “ediff-diff”> nil “/tmp/test2.f90hdBSzQ” “/tmp/test1.f90hdBX1I”)
apply(call-process “diff” nil #<buffer “ediff-diff”> nil ("/tmp/test2.f90hdBSzQ" “/tmp/test1.f90hdBX1I”))
ediff-exec-process(“diff” #<buffer “ediff-diff”> synchronize “” “/tmp/test2.f90hdBSzQ” “/tmp/test1.f90hdBX1I”)
ediff-make-diff2-buffer(#<buffer “ediff-diff”> “/tmp/test2.f90hdBSzQ” “/tmp/test1.f90hdBX1I”)
ediff-setup-diff-regions("/tmp/test2.f90hdBSzQ" “/tmp/test1.f90hdBX1I” nil)
ediff-setup(#<buffer “test2.f90”> “/tmp/test2.f90hdBSzQ” #<buffer “test1.f90”> “/tmp/test1.f90hdBX1I” nil nil ((lambda nil (delete-file “/tmp/test2.f90hdBSzQ”) (dele
te-file “/tmp/test1.f90hdBX1I”) (if … …))) ((ediff-job-name . ediff-buffers)) nil)
ediff-buffers-internal(“test2.f90” “test1.f90” nil nil ediff-buffers)
#<compiled-function (buffer-A buffer-B &optional startup-hooks job-name) “…(13)” [startup-hooks buffer-B buffer-A job-name ediff-buffers ediff-buffers-internal nil
] 6 ("/usr/share/xemacs/xemacs-packages/lisp/ediff/ediff.elc" . 5607) (let (bf) (list … …))>(“test2.f90” “test1.f90”)
call-interactively(ediff-buffers)