For the moment I can't build entire projects.
Build generates errors for reasons that I don't understand for the moment.
Without doubt the GNU Tools ARM Embedded tool-chain isn't properly integrated into Code::Blocks ... but it's the subject of my other post published earlier.
It's not an issue with the ARM GCC integration into Code::Blocks. I assume that you are new to Embedded programming...
Compared to PC applications, you have to do some extra work that cannot be provided by the Compiler toolchain, as it is dependent on the device that the code is intended to run. Additionally, on embedded targets there is a startup - code, which provides basically the functionality of an OS Loader. The startup code sets up the environment for your application and requires information from the linker script.
This means (if you want to start from scratch) that you have to provide some low-level routines and settings.
Your problem(s) seem to be:
The linker script doesn't seem to export the boundary addresses for the .bss section (check "target.ld"; it probably needs some adaption according to the processor derivate you want to use). The linker script should also define memory for stack and heap.
The boundary addresses are used by the startup code (crt0.o) to determine all variables that shall be cleared before main is entered. The startup code does also initialize the .data sections with pre-defined values. If you don't know about .bss and .data sections, the GCC linker (LD) manual and google can help you.
You should also check the crt0.S source to get a grasp about what is happening there. Maybe yo need/want to do some adaptions there as well, so you can provide your own crt0.S and pass the -nocrt0 option to the linker.
Your interrupt vector table is missing. It probably needs to be located at a certain position in memory, as the processor will jump to this location on any interrupt or trap event. From there the table should forward jump to your interrupt service routines. Some processors allow to have the interrupt table at an arbitrary (aligned) memory location. For this they provide a special register to set up the interrupt vector base address. The processors user manual can give you more information about the requirements for the interrupt system.
Keep in mind, that the Toolchain doesn't provide you with anything interrupt related (maybe except for example files). It is your job to initialize the Interrupt system if you want to use interrupts.
The _exit function is a stub routine that gives you the possibility to execute target dependent code before the processor halts. For now, it will suffice if you provide an empty routine, which does nothing. In embedded programming it is common that your main routine doesn't return anyway...