From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/64 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Coming soon: Dynamic linker! Date: Wed, 15 Jun 2011 01:18:13 -0400 Message-ID: <20110615051813.GD12592@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1308115533 23447 80.91.229.12 (15 Jun 2011 05:25:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 15 Jun 2011 05:25:33 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-148-gllmg-musl=m.gmane.org@lists.openwall.com Wed Jun 15 07:25:30 2011 Return-path: Envelope-to: gllmg-musl@lo.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by lo.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1QWiba-00019B-32 for gllmg-musl@lo.gmane.org; Wed, 15 Jun 2011 07:25:30 +0200 Original-Received: (qmail 30614 invoked by uid 550); 15 Jun 2011 05:25:29 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 30606 invoked from network); 15 Jun 2011 05:25:29 -0000 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:64 Archived-At: Greetings! I've resumed work on the dynamic linker, and despite not being very featureful or configurable yet, it seems to be working. I have not committed the code to the git repo yet but I hope to so soon after a little more testing and cleanup (and adding x86_64 support). Some highlights: - For programs that use no third-party libraries, only libc, the "strace" of dynamic and static linked programs is identical. No syscalls are made at startup. This is possible because the "program interpreter" (ld.so) and libc reside together in a single .so file. - Minimum dirty page overhead is just 16k, versus 8k for static linking, and the difference is purely the libc's data segment. It may be possible to reduce this to 12k with custom GNU ld scripts, if anybody cared. In comparison, uClibc uses at least 40k and glibc at least 52k. Dynamic *loading* (dlopen/dlsym) is not yet implemented, but should not be difficult to add to the current design. When that's working, I plan to start the 0.8 release cycle. Rich