I have a project where the target will probably be an embedded system of some type with a compiler that's probably C89 or equivalent. However, I would like to use the GCC extensions from GNU C.
Is there a way to tell GCC to compile to C89? Maybe some assembly/disassembly process?
Compiling to C89 is not the same the same as gcc with extensions, unfortunately. They are in fact mutually exclusive.
You need to decide for sure which you want for your project, and then look at the -std=c89 (and possibly -pedantic) options to gcc if you really want to stick to C89. If you want GNU extensions, look at the gcc docs, there is a fairly extensive set of options for the -std= argument.
There are also a number of gcc cross-compilers in existence, take a look at those and see if they fit your embedded target platform, you may have an easier path available.