.rofixup section size mismatch

Henderson, Stuart Stuart.Henderson@analog.com
Tue Nov 1 12:18:00 GMT 2011


Hi,
I'm looking into a problem I'm seeing with the Blackfin linker (binutils 2.21) when I move to gcc-4.5 (from gcc-4.3).  When compiling the example at the bottom of the email (-O3 -g FDPIC), I get the following error:
bin/ld: LINKER BUG: .rofixup section size mismatch
bin/ld: final link failed: Nonrepresentable section on output

i.e. the fixup section size is smaller than the fixup relocation count * 4.

The problem appears to be by gcc 4.5's emission of a series of:
.picptr funcdesc(_callback)
in the .debug_info section which aren't being handled correctly.

What I don't understand is, why is that?  I'm relatively new to the world of fdpic, so any pointers would be appreciated.

Thanks,
Stu


static int CallFunctionRec(int (*fun)()) {
  CallFunctionRec(fun);
  return 1;
}

static int CallFunction(int (*fun)()) {
  return CallFunctionRec(fun);
}

static int callback() {
  return 0;
}

int main() {
  CallFunction(callback);
  return 0;
}



More information about the Binutils mailing list