[Bug target/57260] Generated R_MIPS_GOT_MIPS relocation for direct function call while compiling with -O2 on MIPS N64

lee.duhem at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue May 14 02:06:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57260

--- Comment #7 from Lee Duhem <lee.duhem at gmail dot com> ---
(In reply to Andrew Pinski from comment #6)
> > I think the following testcase is closer to my case:
> > int shouldbecall16(void);
> > int g(void) { shouldbecall16(); return 0; }
> 
> No it is not; mine is the one which shows the issue:
> static void
> __glXDRIenterServer(GLboolean rendering)
> {
> ....
>     DRIWakeupHandler(((void *)0), 0, ((void *)0));
> }

There are two symbols that have the R_MIPS_GOT_DISP 
relocation, DRIBlockHandler and DRIWakeupHandler.

The DRIBlockHandler case is

static void
__glXDRIleaveServer(GLboolean rendering)
{
...

    DRIBlockHandler(NULL, NULL, NULL);

    for (i = 0; rendering && i < screenInfo.numScreens; i++) {
...
}

And the DRIWakeupHandler case is

static void
__glXDRIenterServer(GLboolean rendering)
{
...

    DRIWakeupHandler(NULL, 0, NULL);
}

Would you like to check again about the first case? I think
these two case are different.

Thank you for your time.



More information about the Gcc-bugs mailing list