flags to avoid illegal instruction

eduardo
Its a fact that anybody knows that to avoid illegal instruction on mini2440
we should use the flags:

-msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t


The question is:

What means these flags?
Anyone could post a link that explain better than gcc manual?

-msoft-float = D: Generate output containing library calls for floating
point.
Q: What this means to me?

-D__GCC_FLOAT_NOT_NEEDED = ?

-march = D: cpu type
Q: What is the difference between "armv4t" and "armv4"?

-mtune=arm920t = D: Set only the instruction scheduling parameters for 
machine type cpu_type. The instruction set is not changed.

D: - definition on gcc manual
Q: - question

source: http://bama.ua.edu/cgi-bin/man-cgi?gcc

Lint
Q: What this means to me?

Means that instead of having floating-point-unit processor calculations
(arm920t doesn't have such processor) it will place calls to libraries that
will emulate the same behavior (only much, much slower)

-D__GCC_FLOAT_NOT_NEEDED means that a compile-time define/symbol will be
defined, so the final code being compiled will be different in case there
are any "#ifdef __GCC_FLOAT_NOT_NEEDED" statements in the code you're
compiling.

Q: What is the difference between "armv4t" and "armv4"?

armv4t supports thumb mode, which is a 16-bit mode that achieves better
code density (more program-per-kilobyte)

eduardo
Thanks for your response Lint!!