patches/glibc/2.9/170-2.10-dns-no-gethostbyname4.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:51:25 2010 +0200 (2010-09-12)
changeset 2123 ff2181adbd28
parent 1201 c9967a6e3b25
permissions -rw-r--r--
cc/gcc: disable complibs if not selected

Force gcc to not link with some companion libraries when
there are not needed (because selected-out).

There is no option to tell gcc *not* to build the Graphite and/or
LTO stuff. They *will* be built if gcc finds the suitable companion
libraries. If we do not provide them, but the host has them, then
gcc *will* find them, and link with them.

Consider the following:
- host has suitable PPL and CLooG (eg. Debian Squeeze)
- user wants to build gcc>=4.4
- user de-selects GRAPHITE
- gcc will find the hosts PPL and CLooG, and will use them
- the user moves the toolchain to an older host that does
not have them (eg. Debian Lenny)
- the toolchain fails, when it was properly setup not to

So, explicitly tell gcc *not* to use unneeded companion libs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 Original patch from: gentoo/src/patchsets/glibc/2.9/0080_all_glibc-2.10-dns-no-gethostbyname4.patch
     2 
     3 -= BEGIN original header =-
     4 http://sourceware.org/bugzilla/show_bug.cgi?id=7060
     5 http://bugs.gentoo.org/250468
     6 
     7 The gethostbyname4() lookup method is problematic since it fires out both
     8 the A and AAAA DNS queries in parallel and over the same socket. This
     9 should work in theory, but it turns out that many cheap DSL modems and
    10 similar devices have buggy DNS servers - if the AAAA query arrives too
    11 quickly after the A query, the server will generate only a single reply
    12 with the A query id but returning an error for the AAAA query; we get
    13 stuck waiting for the second reply.
    14 
    15 For gethostbyname4() users affected, disabling IPv6 in the system might
    16 work around the issue, unfortunately it only helps with applications
    17 using AI_ADDRCONFIG (e.g. Firefox); some (notably e.g. Pidgin) neglect
    18 to do that.
    19 
    20 Real fix should be using separate ports for the A and AAAA queries.
    21 
    22 -= END original header =-
    23 
    24 diff -durN glibc-2_9.orig/resolv/Versions glibc-2_9/resolv/Versions
    25 --- glibc-2_9.orig/resolv/Versions	2008-08-01 19:15:34.000000000 +0200
    26 +++ glibc-2_9/resolv/Versions	2009-02-02 22:00:46.000000000 +0100
    27 @@ -102,7 +102,7 @@
    28      _nss_dns_gethostbyname_r; _nss_dns_getnetbyaddr_r;
    29      _nss_dns_getnetbyname_r; _nss_dns_getcanonname_r;
    30      _nss_dns_gethostbyaddr2_r;
    31 -    _nss_dns_gethostbyname4_r;
    32 +#    _nss_dns_gethostbyname4_r;
    33    }
    34  }
    35