Package: binutils
Version: 2.17-2
Severity: important
Tags: patch

This was found while trying to build a biarch wine on amd64.  As a result of ld
exitting with zero, the configure script thinks /usr/lib/libsicuuc.a is usable,
but in fact it's not.

Patch attached.

$ cat test.c
#include <unicode/ubidi.h>
int
main ()
{
ubidi_open()
  ;
  return 0;
}
$ gcc -m32 -o test -O2 -g  -L/lib32 -L/usr/lib32 -Wl,-rpath,/lib32 
-Wl,-rpath,/usr/lib32 test.c  /usr/lib/libsicuuc.a /usr/lib/libsicudata.a 
-lstdc++ -lgcc_s
/usr/bin/ld: warning: i386:x86-64 architecture of input file 
`/usr/lib/libsicuuc.a(ubidi.ao)' is incompatible with i386 output
[...]
$ ./test
Segmentation fault

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-amd64-k8
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL 
set to en_US.UTF-8)

Versions of packages binutils depends on:
ii  libc6                         2.3.6-15   GNU C Library: Shared libraries

binutils recommends no packages.

-- no debconf information
--- binutils-2.17.old/ld/ldlang.c       2006-06-12 15:05:04.000000000 +0200
+++ binutils-2.17/ld/ldlang.c   2006-08-03 17:08:10.000000000 +0200
@@ -4929,7 +4929,7 @@
       if (compatible == NULL)
        {
          if (command_line.warn_mismatch)
-           einfo (_("%P: warning: %s architecture of input file `%B'"
+           einfo (_("%P%F: %s architecture of input file `%B'"
                     " is incompatible with %s output\n"),
                   bfd_printable_name (input_bfd), input_bfd,
                   bfd_printable_name (output_bfd));

Reply via email to