Any .o file generated by the GNU assembler should be processable by the nm utility belonging to that assembler (regardless wether the compiler calling that assembler is GCC, FPC).

If "nm" cannot process a .o file, either the .o file is corrupt, or it is written in a format "nm" does not understand, but in that case, as and nm do not belong together.

Anyway, the output by "nm" is critical to understand this problem, so you will need to solve this problem in one way or another.