Juergen, what you are asking us to do is to revert to an old code model that did not work well, that caused great trouble as the gnu toolchain changed, and that people found confusing to read.
I agree with what Stefan has said. Furthermore, the stage0_i586.S file is fairly short, and almost no one should ever need to read it. That code should change very little. Most of it has been unchanged for 7 years. I find it most useful to have all the ugly assembly code in one file. And, even as simple as this file is, we had great trouble getting the GNU toolchain to build it properly. We hit several gld bugs, some of which have been "known bugs" for four years or more. We should not need a linker script for that simple file, but we do, in part due to these gld bugs. You can find our discussions on this dating back to Dec 2006 or so.
In V2, we have lots and lots of .S files, some with only one or two instructions and a segment name. These were stitched together via cpp and the linker. The system is incredibly flexible and can be configured in all sorts of ways. In practice, none of that flexibility is needed or used. I am sure that the design of this system followed some notion of good software engineering. It was also, for many people, completely incomprehensible.
The technique we are using for the *ONE* .S file in LinuxBIOS V3 is called "copy and convert". It works well in an industrial strength product, namely, the Plan 9 operating system, which is running in a router near you. As you find a new CPU, which needs a slightly different CAR design, you take the file, which has not changed in 7 years, and replace the CAR algorithm with your own, and create a new file name. It takes about 5 minutes. There are going to be very few files. I just went through this for the Geode LX and it took no time at all.
I appreciate your comments but I disagree completely with your ideas. Our experience has been that what you are proposing is a step in the wrong direction.
Sorry! :-)
thanks
ron