Thanks. One more question, my current entry point of the program is main, after which there is a call to __main to do the constructor stuffs and register destructors. Without INVOKE__main, which point should I define as the entry?
Lei 2016-11-04 11:06 GMT-04:00 Ian Lance Taylor <i...@google.com>: > On Fri, Nov 4, 2016 at 7:55 AM, lei wang <lei.wang.l...@gmail.com> wrote: >> >> In fact, I just want to find a practical way to make the crt work. >> Currently, I did the following configure in my port: >> >> include "elfos.h" in tm.h >> define HAS_INIT_SECTION >> undefine OBJECT_FORMAT_ELF >> define INVOKE__main >> use default INIT_SECTION_OP >> >> My port is working on a bare metal machine with newlib support. Seems >> I fall into an spurious configure for compiling crtstuff.c. Could you >> give me some guide to lead me back to common configuration of this? > > If you are using ELF, arrange for your startup code to execute the > functions in the .init_array section. If necessary, modify your > linker script to define symbols around .init_array that your startup > code can use to find the section. Pass --enable-initfini-array when > you run configure. Don't define INVOKE__main. Don't worry about > HAS_INIT_SECTION or OBJECT_FORMAT_ELF or INIT_SECTION_OP. > > Ian