From owner-freebsd-doc@FreeBSD.ORG Thu Jan 1 17:00:43 2004 Return-Path: Delivered-To: freebsd-doc@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ED22A16A4CE for ; Thu, 1 Jan 2004 17:00:42 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3307743D4C for ; Thu, 1 Jan 2004 17:00:39 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i0210dFR004160 for ; Thu, 1 Jan 2004 17:00:39 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i0210dZh004159; Thu, 1 Jan 2004 17:00:39 -0800 (PST) (envelope-from gnats) Resent-Date: Thu, 1 Jan 2004 17:00:39 -0800 (PST) Resent-Message-Id: <200401020100.i0210dZh004159@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-doc@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Josef El-Rayes Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 863AE16A4CF for ; Thu, 1 Jan 2004 16:50:47 -0800 (PST) Received: from tatiana.utanet.at (tatiana.utanet.at [213.90.36.46]) by mx1.FreeBSD.org (Postfix) with ESMTP id 13FFD43D31 for ; Thu, 1 Jan 2004 16:50:43 -0800 (PST) (envelope-from josef@daemon.li) Received: from plenty.utanet.at ([213.90.36.9]) by tatiana.utanet.at with esmtp (Exim 4.12) id 1AcDWT-0006DP-00 for FreeBSD-gnats-submit@freebsd.org; Fri, 02 Jan 2004 01:50:41 +0100 Received: from dsl-25-122.utaonline.at ([81.189.25.122] helo=jenny.daemon.li) by plenty.utanet.at with esmtp (Exim 4.12) id 1AcDWP-000757-00 for FreeBSD-gnats-submit@freebsd.org; Fri, 02 Jan 2004 01:50:37 +0100 Received: by jenny.daemon.li (Postfix, from userid 1005) id 78A7D7BA; Fri, 2 Jan 2004 01:52:41 +0100 (CET) Message-Id: <20040102005241.78A7D7BA@jenny.daemon.li> Date: Fri, 2 Jan 2004 01:52:41 +0100 (CET) From: Josef El-Rayes To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: docs/60805: [patch] handbook/basics: use &man.elf.5; X-BeenThere: freebsd-doc@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Josef El-Rayes List-Id: Documentation project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jan 2004 01:00:43 -0000 >Number: 60805 >Category: docs >Synopsis: [patch] handbook/basics: use &man.elf.5; >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Thu Jan 01 17:00:38 PST 2004 >Closed-Date: >Last-Modified: >Originator: Josef El-Rayes >Release: FreeBSD 4.9-STABLE i386 >Organization: >Environment: System: FreeBSD jenny.daemon.li 4.9-STABLE FreeBSD 4.9-STABLE #5: Sun Nov 16 23:10:01 CET 2003 josef@jenny.daemon.li:/usr/obj/usr/src/sys/JENNY i386 >Description: use &man.elf.5; instead of ELF >How-To-Repeat: >Fix: --- chapter.sgml.diff begins here --- --- chapter.sgml.orig Fri Jan 2 00:52:59 2004 +++ chapter.sgml Fri Jan 2 01:35:41 2004 @@ -2227,7 +2227,7 @@ Binary Formats - To understand why FreeBSD uses the ELF + To understand why FreeBSD uses the &man.elf.5; format, you must first know a little about the three currently dominant executable formats for &unix;: @@ -2252,11 +2252,11 @@ - ELF + &man.elf.5; The successor to COFF, featuring multiple sections and 32-bit or 64-bit possible values. One - major drawback: ELF was also designed + major drawback: &man.elf.5; was also designed with the assumption that there would be only one ABI per system architecture. That assumption is actually quite incorrect, and not even in the commercial SYSV world (which @@ -2265,7 +2265,7 @@ FreeBSD tries to work around this problem somewhat by providing a utility for branding a - known ELF executable with information + known &man.elf.5; executable with information about the ABI it is compliant with. See the manual page for &man.brandelf.1; for more information. @@ -2275,16 +2275,16 @@ the &man.a.out.5; format, a technology tried and proven through many generations of BSD releases, until the beginning of the 3.X branch. Though it was possible to build and run native - ELF binaries (and kernels) on a FreeBSD + &man.elf.5; binaries (and kernels) on a FreeBSD system for some time before that, FreeBSD initially resisted the - push to switch to ELF as the + push to switch to &man.elf.5; as the default format. Why? Well, when the Linux camp made their - painful transition to ELF, it was not so much + painful transition to &man.elf.5;, it was not so much to flee the a.out executable format as it was their inflexible jump-table based shared library mechanism, which made the construction of shared libraries very difficult for vendors and developers alike. Since the - ELF tools available offered a solution to the + &man.elf.5; tools available offered a solution to the shared library problem and were generally seen as the way forward anyway, the migration cost was accepted as necessary and the transition made. FreeBSD's shared library @@ -2313,7 +2313,7 @@ offer. Things like COFF, ECOFF, and a few obscure others were invented and their limitations explored before things seemed to settle on - ELF. + &man.elf.5;. In addition, program sizes were getting huge and disks (and physical memory) were still relatively small so the concept of a @@ -2329,12 +2329,12 @@ allow all of these things to happen, and they basically worked for a time. In time, a.out was not up to handling all these problems without an ever increasing overhead - in code and complexity. While ELF solved many + in code and complexity. While &man.elf.5; solved many of these problems, it would be painful to switch from the system - that basically worked. So ELF had to wait + that basically worked. So &man.elf.5; had to wait until it was more painful to remain with a.out than it was to migrate to - ELF. + &man.elf.5;. However, as time passed, the build tools that FreeBSD derived their build tools from (the assembler and loader @@ -2346,16 +2346,16 @@ compilers targeting FreeBSD, they were out of luck since the older sources that FreeBSD had for as and ld were not up to the task. The new GNU tools chain (binutils) does support cross - compiling, ELF, shared libraries, C++ + compiling, &man.elf.5;, shared libraries, C++ extensions, etc. In addition, many vendors are releasing - ELF binaries, and it is a good thing for + &man.elf.5; binaries, and it is a good thing for FreeBSD to run them. - ELF is more expressive than a.out and + &man.elf.5; is more expressive than a.out and allows more extensibility in the base system. The - ELF tools are better maintained, and offer + &man.elf.5; tools are better maintained, and offer cross compilation support, which is important to many people. - ELF may be a little slower than a.out, but + &man.elf.5; may be a little slower than a.out, but trying to measure it can be difficult. There are also numerous details that are different between the two in how they map pages, handle init code, etc. None of these are very important, --- chapter.sgml.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: