On Dec 21, 2017 3:03 PM, "Chris Johns" <chr...@rtems.org> wrote:
On 22/12/2017 02:01, Joel Sherrill wrote: > I'm not opposed to this but it requires even more delicate editing that I can't > easily test. If something breaks and it is reported we can look at fixing it. If something breaks and it is not reported is it broken? ;) Like a tree falling in the woods. :) > We can get rid of bsp_specs and do this largely at the same time. The > specifications in GCC will have to be tinkered with to address what's left in > bsp_specs so the specs can do this. I think GCC's default configuration should be user focused and not BSP or internally RTEMS focused. I see this meaning GCC's model is the same for all BSPs and the options to access a BSP are similar. Agreed. I may be deeper in this mess and seeing things that aren't obvious at first glance. The crti/n, begin/end vary a bit per target architecture and (I think) the best we can do is go back to GCC default behavior as a baseline. Sebastian and you were hinting at that in an earlier message. Switching between crt0.o and start.o is magic after that. FWIW I only see three linkcmds where STARTUP is not start.o. so that isn't hard to fix. The entry symbol is usually a variant of start with 0 to 2 underscores. A handful have different symbols or appeared to start in the version. I can push what I have done and continue to nibble. > But I haven't figured out precisely what to do with gcc at this point. The difficult part is locating start.o and similar object files. RTEMS currently implements a horrible hack using -B. This option not only locates a bsp_specs file it also adds a search path for locating .o and other files. I have only just uncovered this as part of removing preinstall and it is a horrible problem to solve. For example what happens if I create start.o in my application and provide it on the command line to the linker with a -B to the location RTEMS's start.o is located? Does GCC know what I want, is this option order dependent or something else? A simple solution here is use RTEMS specific names but the idea of needing -B seems wrong. -B is a standard option which specifies DIR is a system directory. Implies a -L and -I. If it has magic beyond that, I don't see it. Users providing their own start.o outside a BSP isn't a use case I want to worry about. If there is another reason to avoid -B, ok. Also the -specs option is the one that bothers me the most. It implies reading a very GCC specific file. Chris
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel