From owner-p4-projects@FreeBSD.ORG Thu Nov 27 14:52:21 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86E3316A4D1; Thu, 27 Nov 2003 14:52:21 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 625A216A4CE for ; Thu, 27 Nov 2003 14:52:21 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 76AEB43FCB for ; Thu, 27 Nov 2003 14:52:19 -0800 (PST) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hARMqJXJ049141 for ; Thu, 27 Nov 2003 14:52:19 -0800 (PST) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hARMqIXa049138 for perforce@freebsd.org; Thu, 27 Nov 2003 14:52:18 -0800 (PST) (envelope-from marcel@freebsd.org) Date: Thu, 27 Nov 2003 14:52:18 -0800 (PST) Message-Id: <200311272252.hARMqIXa049138@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 43100 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Nov 2003 22:52:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=43100 Change 43100 by marcel@marcel_nfs on 2003/11/27 14:52:05 Tweak the linker script to generate executables that are targeted towards our own VM: o Set the load address of executables to the start of region 1 (region 0 is reserved for ILP32 interoperability) instead of region 2. This stops wasting a complete region. On HP-UX region 1 is reserved for shared address space and this has been copied blindly for Linux and FreeBSD after that. It doesn't make sense to do it. o Do not load the data segment in region 3. On FreeBSD this means that all shared libraries are loaded there as well. Consequently only the text segment of the executable was loaded in region 2, wasting close to a complete region. The text segment is likely to be maller than 1GB for large programs, even if the total amount of code is much larger than that. It isn't common to have an executable that is larger than 1GB on disk. Now we load the data segment in the same region as the text segment, so that we fill up the segment before we go on to the next. We now have 3*2^61 bytes of useable address space. This change needs to be contributed back to binutils. Affected files ... .. //depot/projects/ia64/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh#2 edit Differences ... ==== //depot/projects/ia64/contrib/binutils/ld/emulparams/elf64_ia64_fbsd.sh#2 (text+ko) ==== @@ -1,2 +1,4 @@ . ${srcdir}/emulparams/elf64_ia64.sh +TEXT_START_ADDR="0x2000000000000000" +unset DATA_ADDR . ${srcdir}/emulparams/elf_fbsd.sh