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));