It states that the --start-group and --end-group are treated as gcc options (hence the prefix -f in the error message) but they are not recognized, since they are linker options. For this reason you use the -Wl, option to specify they have to be passed to the linker.
The problem here is simply the syntax: do not put a space between -Wl, and --start-group. It should be:
Code:
-Wl,--start-group .......... -Wl,--end-group
Strip out extra spaces and the trick is done.