MIPS gcc/crtstuff.c force_to_data[] not working for me

Graeme Peterson gp@qnx.com
Tue May 18 16:50:00 GMT 2004


When I use my mips port of gcc-3.3.3 to build crtbegin.o, my ctor list is
not being built correctly.  I think this is because the force_to_data[]
variable is being put in the .lcomm instead of .data, so __CTOR_LIST__ gets
put in the .data, because cc1 is not 'in_data'.

The assembly from crtbegin.i that I am seeing is:

        .lcomm  force_to_data,0
        .section        .ctors,"aw"
        .data
        .align  2
        .type   __CTOR_LIST__, @object
__CTOR_LIST__:
        .word   -1
        .section        .dtors,"aw"
        .align  2
        .type   __DTOR_LIST__, @object
__DTOR_LIST__:
        .word   -1

I am having a hard time finding the right way to fix this.  I am tempted to
define CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN and DTOR_LIST_END to
be the raw mips assembly that would work for me.  However, no-one else is
doing that, so I must be missing something in my backend.

Any pointers?

Thanks.
GP



More information about the Gcc mailing list