From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15733 invoked by alias); 11 Oct 2002 11:51:14 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 15600 invoked from network); 11 Oct 2002 11:51:13 -0000 Received: from unknown (HELO gateway.sf.frob.com) (64.163.215.223) by sources.redhat.com with SMTP; 11 Oct 2002 11:51:13 -0000 Received: from magilla.sf.frob.com (magilla.sf.frob.com [198.49.250.228]) by gateway.sf.frob.com (Postfix) with ESMTP id EB9C4357E; Fri, 11 Oct 2002 04:51:12 -0700 (PDT) Received: (from roland@localhost) by magilla.sf.frob.com (8.11.6/8.11.6) id g9BBpCL26260; Fri, 11 Oct 2002 04:51:12 -0700 Date: Sun, 13 Oct 2002 12:59:00 -0000 Message-Id: <200210111151.g9BBpCL26260@magilla.sf.frob.com> From: Roland McGrath To: GNU libc hackers Subject: rtld build changes X-zippy-says: Half a mind is a terrible thing to waste! X-SW-Source: 2002-10/txt/msg00052.txt.bz2 I have committed an updated version of the changes I posted previously to reorganize the way ld.so is built. Along with this are several cleanups and optimizations that this enables, and we may want to do more now that we have the facility. These changes are all working fine for me, but I have only tried builds on x86, ppc, and x86-64, and not done much testing beyond make check. So be on the lookout for sudden wierdness and let me know. So far two things of interest were made possible by building ld.so the new way: ld.so always uses its own private errno variable (to which all access is already serialized), and all accesses to it use GOTOFF relocs. Between this and some other optimization/cleanups, ld.so has gone from 16 relocs to 9 and that's pretty much as low as it can go. When libc is using __thread, ld.so still does not. You can now have one ld.so installed capable of loading a libc binary built to use __thread or one built without it. This also eliminates some startup overhead (including a system call) from ld.so.