[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#270620: Some more information



tags 270620 -help
tags 270620 -patch
severity 270620 important
clone 270620 -1
retitle 270620 o32 ABI breakage in gcc 3.3/3.4
tags -1 -help
reassign -1 binutils
retitle -1 xgot/multigot breakage
thanks

It turned out that the linker can cope with the current gcc startup
files, so the previous patch for 270620 isn't needed, at least not
in its current form.

The appended dpatch works around the binutils breakage triggered by
simultaneously using xgot and multigot. It isn't more than a workaround,
a xgot compile with less than 16k globals but more than 16k GOT entries
will still fail. At least, things don't get worse by it, and it allows
to build working versions of mozilla*.


Thiemo


#! /bin/sh -e
## 120_mips_xgot_multigot_workaround.dpatch
##
## DP: Description: Make multigot/xgot handling mutually exclusive.
## DP: Author: Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
## DP: Upstream status: Not submitted
## DP: Date: 2004-09-17

if [ $# -lt 1 ]; then
    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
    exit 1
fi

[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"

case "$1" in
    -patch) patch -p1 ${patch_opts} < $0;;
    -unpatch) patch -R -p1 ${patch_opts} < $0;;
    *)
        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
        exit 1;;
esac

exit 0

@DPATCH@
--- binutils-2.15/bfd/elfxx-mips.c.orig	2004-05-17 21:36:03.000000000 +0200
+++ binutils-2.15/bfd/elfxx-mips.c	2004-09-12 00:27:04.000000000 +0200
@@ -5880,6 +5883,8 @@ _bfd_mips_elf_always_size_sections (bfd 
   s->_raw_size += i * MIPS_ELF_GOT_SIZE (output_bfd);
 
   if (s->_raw_size > MIPS_ELF_GOT_MAX_SIZE (output_bfd)
+      && g->global_gotno <= (MIPS_ELF_GOT_MAX_SIZE (output_bfd)
+			     / MIPS_ELF_GOT_SIZE (output_bfd))
       && ! mips_elf_multi_got (output_bfd, info, g, s, local_gotno))
     return FALSE;
 



Reply to: