EDIT:
What modifications to icon!?
--
This should go away if building for ARM (see thread danhicksbyron linked). You say you only have a small application?
BL out of range is not a feature of small app and if indeed is a small application it should be considered error in the compiler.
What version of GCCE you use ?
Can you do
Code:
fromelf -z <object_file_where_error_comes_from>
I suppose the object file is main.o since you talk about small project.
To find out what is the largest relocation segment use:
Code:
fromelf -r <object_file_where_error_comes_from>
And search for Size and give us the maximum you found.
You can find the object files from epoc32\build\<project><target><release_target><release_mode> , happy browsing 
If you can't find anything interesting or extraordinary one place to look is data segments (fromelf -d).