From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.bugs Subject: Re: make for emacs fails under OS X 10.5 Date: Tue, 30 Oct 2007 08:17:48 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: <93DF8565-CAA3-4D03-949D-2B8BF6C5B812@mac.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: ger.gmane.org 1193699888 30736 80.91.229.12 (29 Oct 2007 23:18:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 29 Oct 2007 23:18:08 +0000 (UTC) Cc: bug-gnu-emacs@gnu.org To: Steffen Heise Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 30 00:18:10 2007 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Imds1-0003Cp-7f for geb-bug-gnu-emacs@m.gmane.org; Tue, 30 Oct 2007 00:18:09 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Imdrr-0006cP-F0 for geb-bug-gnu-emacs@m.gmane.org; Mon, 29 Oct 2007 19:17:59 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Imdrl-0006Zt-GT for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2007 19:17:53 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Imdrj-0006WF-QZ for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2007 19:17:52 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Imdrj-0006W5-Ej for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2007 19:17:51 -0400 Original-Received: from ntp.math.s.chiba-u.ac.jp ([133.82.132.2] helo=mathmail.math.s.chiba-u.ac.jp) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Imdri-0001Bz-Rn for bug-gnu-emacs@gnu.org; Mon, 29 Oct 2007 19:17:51 -0400 Original-Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 0725A2C40; Tue, 30 Oct 2007 08:17:49 +0900 (JST) In-Reply-To: User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/23.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) X-detected-kernel: by monty-python.gnu.org: NetBSD 3.0 (DF) X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:16867 Archived-At: This patch seems to work. I've tested it only on PPC as I don't have multiple licenses for Leopard. Could you report the result if you have Leopard on Intel Mac? YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp Index: src/unexmacosx.c =================================================================== RCS file: /cvsroot/emacs/emacs/src/unexmacosx.c,v retrieving revision 1.22.2.1 diff -c -p -r1.22.2.1 unexmacosx.c *** src/unexmacosx.c 25 Jul 2007 05:15:30 -0000 1.22.2.1 --- src/unexmacosx.c 29 Oct 2007 23:09:00 -0000 *************** unexec_regions_recorder (task_t task, vo *** 443,457 **** while (num && num_unexec_regions < MAX_UNEXEC_REGIONS) { ! /* Subtract the size of trailing null pages from filesize. It can be smaller than vmsize in segment commands. In such a ! case, trailing pages are initialized with zeros. */ ! for (p = ranges->address + ranges->size; p > ranges->address; ! p -= sizeof (int)) ! if (*(((int *) p)-1)) ! break; ! filesize = ROUNDUP_TO_PAGE_BOUNDARY (p - ranges->address); ! assert (filesize <= ranges->size); unexec_regions[num_unexec_regions].filesize = filesize; unexec_regions[num_unexec_regions++].range = *ranges; --- 443,455 ---- while (num && num_unexec_regions < MAX_UNEXEC_REGIONS) { ! /* Subtract the size of trailing null bytes from filesize. It can be smaller than vmsize in segment commands. In such a ! case, trailing bytes are initialized with zeros. */ ! for (p = ranges->address + ranges->size; p > ranges->address; p--) ! if (*(((char *) p)-1)) ! break; ! filesize = p - ranges->address; unexec_regions[num_unexec_regions].filesize = filesize; unexec_regions[num_unexec_regions++].range = *ranges; *************** unexec_regions_merge () *** 503,513 **** --- 501,519 ---- { int i, n; unexec_region_info r; + vm_size_t padsize; qsort (unexec_regions, num_unexec_regions, sizeof (unexec_regions[0]), &unexec_regions_sort_compare); n = 0; r = unexec_regions[0]; + padsize = r.range.address & (pagesize - 1); + if (padsize) + { + r.range.address -= padsize; + r.range.size += padsize; + r.filesize += padsize; + } for (i = 1; i < num_unexec_regions; i++) { if (r.range.address + r.range.size == unexec_regions[i].range.address *************** unexec_regions_merge () *** 520,525 **** --- 526,542 ---- { unexec_regions[n++] = r; r = unexec_regions[i]; + padsize = r.range.address & (pagesize - 1); + if (padsize) + { + if ((unexec_regions[n-1].range.address + + unexec_regions[n-1].range.size) == r.range.address) + unexec_regions[n-1].range.size -= padsize; + + r.range.address -= padsize; + r.range.size += padsize; + r.filesize += padsize; + } } } unexec_regions[n++] = r; *************** print_load_command_name (int lc) *** 562,567 **** --- 579,589 ---- case LC_TWOLEVEL_HINTS: printf ("LC_TWOLEVEL_HINTS"); break; + #ifdef LC_UUID + case LC_UUID: + printf ("LC_UUID "); + break; + #endif default: printf ("unknown "); }