I apologize for an error in my last post. The output sections .fardata.1 and .fardata.2 do come from section splitting after all.
[quote user="Monsef Daniel"]However I have a problem to do the same with section .fardata.1 and .fardata.2. the linker does not recognize the section fardata.1 or fardata.2 [/quote]
I'm not sure what you mean. Please shows the exact diagnostic the linker emits.
[quote user="Monsef Daniel"]When I use fardata without any extension, the linker combine both data sections into one with different run time memory location and generate errors indicate that the new location is far to reach.[/quote]
Again, I'm not clear on what this means. Please show the exact diagnostic the linker emits.
Speaking generally ... It is possible to split both the run and load allocation of an initialized section like .fardata. The linker command file line looks like this ...
.fardata load >> LM0 | LM1, run >> RM0 | RM1, table(BINIT)
Note the table(BINIT) matches how you do it with the .text section. This creates entries in the boot time copy table. The boot time copy table is processed as part of the system start up code. In this particular case it copies all parts of the .fardata output section (split or not) from the load address to the run address. You might decide to handle the copy table differently.
Hope this helps ...
-George