title: Valgrind link failure for MIPS target : relocation truncated to fit R_MIPS_HI16 against `_gp_disp'"
body: <p>I am using mips compiler based on gcc version 4.2.0. When I compile valgrind 3.9.0 for mips, i am getting linker error as "relocation truncated to fit: R_MIPS_HI16 against `_gp_disp'"</p>
  
  <p>Find below detailed log,</p>
  
  <p>Entering directory <code>valgrind-3.9.0/memcheck'
  ../coregrind/link_tool_exe_linux 0x38000000 MIPSel/bin/mipsel-percello-linux-gnu-gcc  -Wno-long-long -Ikernel5/ -Ikernel5/include -D__STRUCT_EXEC_OVERRIDE__ -Wwrite-strings -fno-stack-protector   -o memcheck-mips32-linux -O2 -g -Wall -Wmissing-prototypes -Wshadow -Wpointer-arith -Wstrict-prototypes -Wmissing-declarations -Wno-format-zero-length -fno-strict-aliasing -fno-builtin -mips32 -O2 -static -nodefaultlibs -nostartfiles -u __start  memcheck_mips32_linux-mc_leakcheck.o memcheck_mips32_linux-mc_malloc_wrappers.o memcheck_mips32_linux-mc_main.o memcheck_mips32_linux-mc_translate.o memcheck_mips32_linux-mc_machine.o memcheck_mips32_linux-mc_errors.o ../coregrind/libcoregrind-mips32-linux.a ../VEX/libvex-mips32-linux.a -lgcc
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>pp_heuristic':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:593: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>search_address_in_GP_reg':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:1841: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>get_printing_rules':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:1178: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>lc_push':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:563: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>find_active_chunks':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:333: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>aligned_ptr_above_page0_is_vtable_addr':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:612: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>lc_is_a_chunk_ptr':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:523: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>heuristic_reachedness':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:687: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>lc_push_without_clique_if_a_chunk_ptr':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:781: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>lc_push_if_a_chunk_ptr_register':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:839: relocation truncated to fit: R_MIPS_HI16 against <code>_gp_disp'
  memcheck_mips32_linux-mc_leakcheck.o: In function</code>lc_scan_memory':
  valgrind-3.9.0/memcheck/mc_leakcheck.c:946: additional relocation overflows omitted from the output
  collect2: ld returned 1 exit status
  make[3]: <strong>* [memcheck-mips32-linux] Error 1
  make[3]: Leaving directory <code>valgrind-3.9.0/memcheck'
  make[2]: *** [all-recursive] Error 1
  make[2]: Leaving directory</code>valgrind-3.9.0/memcheck'
  make[1]: *</strong> [all-recursive] Error 1
  make[1]: Leaving directory `valgrind-3.9.0'
  make: <em>*</em> [all] Error 2</p>
  
  <p>Please inform, if more information required.
  Regards
  eswar</p>